64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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
 |