crane/.github/workflows/test.yml
Ivan Petkov a0d1df4631
Fix alt-registry example (#343)
* crates.io uses the sparse registry by default, and trying to
  explicitly register a sparse registry for it results in errors
* Also set nixConfig to include binary cache
2023-06-18 23:16:45 +00:00

107 lines
3.4 KiB
YAML

name: "Run test suite"
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- 'master'
- 'ci*' # Allow testing CI fixes without opening a PR
permissions:
contents: read
jobs:
tests-pass:
name: all systems go
runs-on: ubuntu-latest
if: ${{ always() && contains(needs.*.result, 'failure') }}
steps:
- run: exit 1
needs:
- check-dead-code
- check-fmt
- examples
- tests
tests:
strategy:
# Allow other jobs to finish building and cache properly before bailing
fail-fast: false
matrix:
include:
# Latest and greatest release of Nix
- install_url: https://nixos.org/nix/install
# The 23.05 branch ships with Nix 2.13.3
- install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nixpkgs-override: "--override-input nixpkgs github:NixOS/nixpkgs/release-23.05"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
with:
install_url: ${{ matrix.install_url }}
- uses: cachix/cachix-action@v12
with:
name: crane
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: flake checks
run: nix flake check --accept-flake-config --keep-going --print-build-logs ${{ matrix.nixpkgs-override }}
- name: extra tests
run: nix develop --accept-flake-config ${{ matrix.nixpkgs-override }} --command ./extra-tests/test.sh
examples:
strategy:
# Allow other jobs to finish building and cache properly before bailing
fail-fast: false
matrix:
include:
- os: ubuntu-latest
# Latest and greatest release of Nix
install_url: https://nixos.org/nix/install
- os: ubuntu-latest
# The 23.05 branch ships with Nix 2.11.1
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nixpkgs-override: "--override-input nixpkgs github:NixOS/nixpkgs/release-23.05"
- os: macos-12
# Latest and greatest release of Nix
install_url: https://nixos.org/nix/install
nixpkgs-override: "--override-input nixpkgs github:NixOS/nixpkgs/nixpkgs-23.05-darwin"
filter: "-not -name build-std"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
with:
install_url: ${{ matrix.install_url }}
- uses: cachix/cachix-action@v12
with:
name: crane
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: validate examples
run: |
for f in $(find examples -maxdepth 1 -mindepth 1 -type d ${{ matrix.filter }}); do
pushd "${f}"
echo "validating ${f}"
nix flake check --accept-flake-config --print-build-logs --override-input crane ../.. ${{ matrix.nixpkgs-override }}
popd
done
check-dead-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
- uses: cachix/cachix-action@v12
with:
name: deadnix
- name: check for dead code
run: nix run github:astro/deadnix -- .
check-fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
- name: check formatting
run: nix fmt --accept-flake-config -- --check .