diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 28bcd892..c504c9d1 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -30,13 +30,16 @@ jobs: fail-fast: false matrix: setup: - - { ocaml-version: 4_14, continue-on-error: false } - - { ocaml-version: 5_1, continue-on-error: false } - - { ocaml-version: 5_2, continue-on-error: false } - - { ocaml-version: 5_3, continue-on-error: false } - - { ocaml-version: 5_4, continue-on-error: true } - name: Native packages (Linux, OCaml ${{ matrix.setup.ocaml-version }}) - runs-on: ubuntu-latest + - { ocaml-version: 4_14, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_1, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_2, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_3, continue-on-error: true, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_4, continue-on-error: true, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_2, continue-on-error: false, os: ubuntu-24.04-arm, platform: aarch64-linux } + - { ocaml-version: 5_3, continue-on-error: true, os: ubuntu-24.04-arm, platform: aarch64-linux } + - { ocaml-version: 5_4, continue-on-error: true, os: ubuntu-24.04-arm, platform: aarch64-linux } + name: Native packages (${{ matrix.setup.os }}, OCaml ${{ matrix.setup.ocaml-version }}) + runs-on: ${{ matrix.setup.os }} env: NIXPKGS_ALLOW_UNFREE: 1 steps: @@ -55,7 +58,7 @@ jobs: awsAccessKeyId: ${{ secrets.R2_ACCESS_KEY_ID }} awsSecretAccessKey: ${{ secrets.R2_SECRET_ACESS_KEY }} - name: Build nix packages - run: ./ci.sh x86_64-linux build_${{ matrix.setup.ocaml-version }} + run: ./ci.sh ${{ matrix.setup.platform }} build_${{ matrix.setup.ocaml-version }} continue-on-error: ${{ matrix.setup.continue-on-error }} top-level-packages: @@ -130,16 +133,18 @@ jobs: fail-fast: false matrix: setup: - - { ocaml-version: 4_14, continue-on-error: false } - - { ocaml-version: 5_1, continue-on-error: false } - - { ocaml-version: 5_2, continue-on-error: false } - - { ocaml-version: 5_3, continue-on-error: false } - # - { ocaml-version: 5_4, continue-on-error: true } + - { ocaml-version: 4_14, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_1, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_2, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_3, continue-on-error: false, os: ubuntu-latest, platform: x86_64-linux } + - { ocaml-version: 5_2, continue-on-error: false, os: ubuntu-24.04-arm, platform: aarch64-linux } + - { ocaml-version: 5_3, continue-on-error: false, os: ubuntu-24.04-arm, platform: aarch64-linux } + # - { ocaml-version: 5_4, continue-on-error: false, os: ubuntu-24.04-arm, platform: aarch64-linux } target: - arm64 - musl - name: ${{matrix.target}} packages (OCaml ${{ matrix.setup.ocaml-version }}) - runs-on: ubuntu-latest + name: ${{matrix.target}} packages (OCaml ${{ matrix.setup.ocaml-version }}, ${{ matrix.setup.os }}) + runs-on: ${{ matrix.setup.os }} env: NIXPKGS_ALLOW_UNFREE: 1 steps: @@ -158,5 +163,5 @@ jobs: awsAccessKeyId: ${{ secrets.R2_ACCESS_KEY_ID }} awsSecretAccessKey: ${{ secrets.R2_SECRET_ACESS_KEY }} - name: Build nix packages - run : ./ci.sh x86_64-linux ${{matrix.target}}_${{matrix.setup.ocaml-version}} + run : ./ci.sh ${{ matrix.setup.platform }} ${{matrix.target}}_${{matrix.setup.ocaml-version}} continue-on-error: ${{ matrix.setup.continue-on-error }} diff --git a/ci/filter.nix b/ci/filter.nix index 0960797e..3641a9c6 100644 --- a/ci/filter.nix +++ b/ci/filter.nix @@ -205,10 +205,14 @@ let "owl" "owl-base" ]; + + aarch64LinuxIgnores = [ + "elina" + ]; in rec { - inherit ocaml5Ignores darwinIgnores; + inherit ocaml5Ignores darwinIgnores aarch64LinuxIgnores; ocamlCandidates = { pkgs , ocamlVersion diff --git a/ci/hydra.nix b/ci/hydra.nix index 64db93cb..99026a9e 100644 --- a/ci/hydra.nix +++ b/ci/hydra.nix @@ -3,7 +3,11 @@ let inherit (pkgs) lib stdenv; filter = pkgs.callPackage ./filter.nix { }; isDarwin = system == "aarch64-darwin" || system == "x86_64-darwin"; - extraIgnores = if isDarwin then filter.darwinIgnores else [ ]; + extraIgnores = + if isDarwin + then filter.darwinIgnores + else if system == "aarch64-linux" then filter.aarch64LinuxIgnores + else [ ]; in with filter; @@ -11,6 +15,7 @@ with filter; build_4_14 = ocamlCandidates { inherit pkgs; ocamlVersion = "4_14"; + extraIgnores = extraIgnores; }; build_5_1 = ocamlCandidates { inherit pkgs; diff --git a/flake.nix b/flake.nix index b9f19e71..c778c337 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,7 @@ lib = nixpkgs.lib; hydraJobs = nixpkgs.lib.genAttrs - [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ] + [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ] (system: import ./ci/hydra.nix { inherit system; pkgs = self.legacyPackages.${system};