name: CI on: pull_request: push: branches: - main - master permissions: contents: read jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#check clippy: runs-on: ubuntu-latest needs: check steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#clippy msrv: runs-on: ubuntu-latest needs: check steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#msrv matrix: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - id: set-matrix run: echo "matrix=$(nix eval --json ".#matrix.x86_64-linux")" | tee $GITHUB_OUTPUT build: runs-on: ubuntu-latest needs: [check, matrix] strategy: fail-fast: false matrix: ${{fromJson(needs.matrix.outputs.matrix)}} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#${{ matrix.target }} - uses: actions/upload-artifact@v4 with: name: parser-${{ matrix.target }} path: result/bin/${{ matrix.artifact_name }} test: runs-on: ubuntu-latest needs: check steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#test