name: test on: push: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: tests: name: AoC 2024 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache: true components: clippy, rustfmt toolchain: stable - name: install cargo-aoc run: cargo install --locked cargo-aoc - name: get date id: date run: | echo date=$(date +%Y%m%d) > $GITHUB_OUTPUT - name: Get cached inputs id: inputs uses: actions/cache@v4 with: path: input key: ${{ steps.date.outputs.date }} - name: Get inputs from source if: steps.inputs.outputs.cache-hit != 'true' run: | cargo aoc credentials ${{ secrets.AOC_SESSION }} for i in $(seq 1 25); do dayfmt=$(printf %02d $i) if [ ${{ steps.date.outputs.date }} -ge 202412${dayfmt} ]; then cargo aoc input --year 2024 --day $i fi done - name: cargo test run: cargo test --lib continue-on-error: true - name: rustfmt run: cargo fmt --all -- --check continue-on-error: true - name: clippy run: cargo clippy --lib --tests -- -D warnings continue-on-error: true - name: full run run: cargo run --release continue-on-error: true