diff --git a/.github/actions/prep-build-env/action.yml b/.github/actions/prep-build-env/action.yml new file mode 100644 index 00000000..8edaf3b4 --- /dev/null +++ b/.github/actions/prep-build-env/action.yml @@ -0,0 +1,13 @@ +name: "Prepare nix build environment" +runs: + using: "composite" + steps: + - name: Ensure KVM is usable by nix-build + run: sudo chmod a+rwx /dev/kvm + shell: bash + - uses: cachix/install-nix-action@v18 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + system-features = nixos-test benchmark big-parallel kvm + - uses: DeterminateSystems/magic-nix-cache-action@v8 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e90847f3..3597f03c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,15 +29,8 @@ jobs: matrix: file: ${{fromJson(needs.prepare-matrix.outputs.integration_tests)}} steps: - - name: Ensure KVM is usable by nix-build - run: sudo chmod a+rwx /dev/kvm - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: NIXPKGS_ALLOW_UNFREE=1 nix-build ${{ matrix.file }} @@ -49,15 +42,8 @@ jobs: matrix: file: ${{fromJson(needs.prepare-matrix.outputs.manual_tests)}} steps: - - name: Ensure KVM is usable by nix-build - run: sudo chmod a+rwx /dev/kvm - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: NIXPKGS_ALLOW_UNFREE=1 nix-build -A driverInteractive ${{ matrix.file }} @@ -65,46 +51,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: cd kiosk && nix-shell --run bin/test build-vm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: NIXPKGS_ALLOW_UNFREE=1 ./build vm e2e-tests: runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/prep-build-env - name: Make more space available on the runner run: | sudo rm -rf /usr/share/dotnet \ /usr/local/lib/android \ /opt/ghc \ /opt/hostedtoolcache/CodeQL - - - name: Ensure KVM is usable by nix-build - run: sudo chmod a+rwx /dev/kvm - - - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 - name: Make magic-nix-cache read-only by removing post-build-hook run: sed -i '/post-build-hook = magic-nix-cache-build-hook/d' $HOME/.config/nix/nix.conf - run: ./build test-e2e @@ -116,22 +83,12 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: cd controller && nix-shell --run 'bin/test --force --no-buffer' ocaml-formatting: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v18 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - system-features = nixos-test benchmark big-parallel kvm - - uses: DeterminateSystems/magic-nix-cache-action@v8 + - uses: ./.github/actions/prep-build-env - run: cd controller && nix-shell --run 'dune build @fmt'