diff --git a/.github/workflows/flake-check.yml b/.github/workflows/flake-check.yml new file mode 100644 index 0000000..839ad02 --- /dev/null +++ b/.github/workflows/flake-check.yml @@ -0,0 +1,45 @@ +name: "Flake checks" +on: + pull_request: + push: + branches: + - main +jobs: + + flake-checks: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v2.4.0 + with: + # Nix Flakes doesn't work on shallow clones + fetch-depth: 0 + - uses: cachix/install-nix-action@v16 + with: + nix_path: nixpkgs=channel:nixos-unstable + - id: set-matrix + run: | + set -euo pipefail + + matrix="$(nix flake show --json | jq '.checks."x86_64-linux" | keys' | jq -rcM '{attr: ., os: ["ubuntu-latest", "macos-latest"]}')" + echo "::set-output name=matrix::$matrix" + + builds: + needs: flake-checks + runs-on: ${{ matrix.os }} + strategy: + matrix: ${{fromJSON(needs.flake-checks.outputs.matrix)}} + steps: + - uses: actions/checkout@v2.4.0 + with: + # Nix Flakes doesn't work on shallow clones + fetch-depth: 0 + - uses: cachix/install-nix-action@v16 + with: + nix_path: nixpkgs=channel:nixos-unstable + - run: | + set -euo pipefail + + system=$(nix-instantiate --eval --expr builtins.currentSystem | jq -r) + nix build -L .#checks.$system.${{ matrix.attr }} diff --git a/.github/workflows/test.yml b/.github/workflows/test-develop-classic.yml similarity index 50% rename from .github/workflows/test.yml rename to .github/workflows/test-develop-classic.yml index ce115e5..0455e30 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test-develop-classic.yml @@ -1,11 +1,9 @@ -name: "Test" +name: "Development workflow - nix-shell" on: pull_request: push: branches: - main - schedule: - - cron: '51 2 * * *' jobs: tests: strategy: @@ -15,5 +13,9 @@ jobs: steps: - uses: actions/checkout@v2 - uses: cachix/install-nix-action@v16 - - name: build - run: NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixpkgs-unstable.tar.gz nix-build --expr '(import { }).callPackage ./. { }' + with: + nix_path: nixpkgs=channel:nixos-unstable + - name: Build + run: nix-shell --run 'meson build && cd build && ninja' + - name: Run tests + run: nix-shell --run 'pytest ./tests' diff --git a/.github/workflows/test-flakes.yml b/.github/workflows/test-develop-flakes.yml similarity index 56% rename from .github/workflows/test-flakes.yml rename to .github/workflows/test-develop-flakes.yml index 8b8d29f..b4c0afa 100644 --- a/.github/workflows/test-flakes.yml +++ b/.github/workflows/test-develop-flakes.yml @@ -1,11 +1,9 @@ -name: "Flake test" +name: "Development workflow - flakes" on: pull_request: push: branches: - main - schedule: - - cron: '51 2 * * *' jobs: tests: strategy: @@ -18,11 +16,7 @@ jobs: # Nix Flakes doesn't work on shallow clones fetch-depth: 0 - uses: cachix/install-nix-action@v16 - - name: List flake structure - run: nix flake show - name: Build - run: nix build --out-link result + run: nix develop -c bash -c 'meson build && cd build && ninja' - name: Run tests - run: | - nix develop -c install -D ./result/bin/nix-eval-jobs ./build/src/nix-eval-jobs - nix develop -c pytest ./tests + run: nix develop -c pytest ./tests diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml index e53ba93..5a3d232 100644 --- a/.github/workflows/update-flake-lock.yml +++ b/.github/workflows/update-flake-lock.yml @@ -2,7 +2,7 @@ name: update-flake-lock on: workflow_dispatch: # allows manual triggering schedule: - - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + - cron: '0 0 * * 1,4' # Run twice a week jobs: lockfile: