diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5bdd53ef7d073aba6d317616bd76e6aafbb66bd1..4573eead98b91c54fdec1e8b0b72ab2847a96f92 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,2 +1,105 @@ -include: -- remote: 'https://gitlab.horizon-haskell.net/gitlab/ci-templates/raw/master/default.yml' +stages: +- devour +- generate +- packages +- cache + +x86_64-linux:devour: + stage: devour + script: + - nix build github:srid/devour-flake#packages.x86_64-linux.default -L --no-link --print-out-paths --override-input flake . --keep-going + +aarch64-darwin:devour: + stage: devour + script: + - nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . --keep-going + +aarch64-linux:devour: + stage: devour + script: + - nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . --keep-going + + +x86_64-linux:generate: + stage: generate + needs: ["x86_64-linux:devour"] + script: + - nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" > flake-ci.yml + when: on_failure + artifacts: + paths: + - flake-ci.yml + +x86_64-linux:packages: + stage: packages + needs: ["x86_64-linux:devour", "x86_64-linux:generate"] + when: on_failure + trigger: + include: + - artifact: flake-ci.yml + job: x86_64-linux:generate + strategy: depend + + +aarch64-darwin:generate: + stage: generate + needs: ["aarch64-darwin:devour"] + script: + - nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" -- aarch64-darwin > flake-ci.yml + when: on_failure + artifacts: + paths: + - flake-ci.yml + +aarch64-darwin:packages: + stage: packages + needs: ["aarch64-darwin:devour", "aarch64-darwin:generate"] + when: on_failure + trigger: + include: + - artifact: flake-ci.yml + job: aarch64-darwin:generate + strategy: depend + + +aarch64-linux:generate: + stage: generate + needs: ["aarch64-linux:devour"] + script: + - nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" -- aarch64-linux > flake-ci.yml + when: on_failure + artifacts: + paths: + - flake-ci.yml + +aarch64-linux:packages: + stage: packages + needs: ["aarch64-linux:devour", "aarch64-linux:generate"] + when: on_failure + trigger: + include: + - artifact: flake-ci.yml + job: aarch64-linux:generate + strategy: depend + + +x86_64-linux:cachix: + stage: cache + rules: + - if: $CI_COMMIT_REF_PROTECTED == "true" + script: + - nix-shell -p cachix --command "nix build github:srid/devour-flake -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon" + +aarch64-darwin:cachix: + stage: cache + rules: + - if: $CI_COMMIT_REF_PROTECTED == "true" + script: + - nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon" + +aarch64-linux:cachix: + stage: cache + rules: + - if: $CI_COMMIT_REF_PROTECTED == "true" + script: + - nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"