diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 281be3e..a00bed5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ include: - - gitlab-ci.yml + - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/nix-gitlab-ci@$CI_COMMIT_SHA stages: - build @@ -16,9 +16,10 @@ build:image: - export PATH="$PATH:$HOME/.nix-profile/bin" script: - nix build .#image${VARIANT} + - export NORMALIZED_BRANCH=${CI_COMMIT_BRANCH/\//-} - skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp "docker-archive:result" - "docker://$CI_REGISTRY_IMAGE/nix-ci:${CI_COMMIT_BRANCH/main/latest}${VARIANT}" + "docker://$CI_REGISTRY_IMAGE/nix-ci:${NORMALIZED_BRANCH/main/latest}${VARIANT}" - skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp "docker-archive:result" "docker://$CI_REGISTRY_IMAGE/nix-ci:$(date +"%m-%d-%y")${VARIANT}" diff --git a/README.md b/README.md index c005548..5a52d25 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,9 @@ which can be imported in multiple projects. ```yaml # .gitlab-ci.yml include: - - project: TECHNOFAB/nix-gitlab-ci - ref: main - file: gitlab-ci.yml + - component: gitlab.com/TECHNOFAB/nix-gitlab-ci/nix-gitlab-ci@0.2.0 + inputs: + # specify inputs here, for example: + image_tag: latest-cachix ``` + diff --git a/gitlab-ci.yml b/gitlab-ci.yml index 66f9699..71dc45c 100644 --- a/gitlab-ci.yml +++ b/gitlab-ci.yml @@ -1,4 +1,6 @@ - +# +# NOTE: DEPRECATED: please switch to the CI/CD Component or include "templates/nix-gitlab-ci.yml" +# variables: # latest | latest-cachix | latest-attic etc. NIX_CI_IMAGE_TAG: latest diff --git a/templates/nix-gitlab-ci.yml b/templates/nix-gitlab-ci.yml new file mode 100644 index 0000000..4d91d28 --- /dev/null +++ b/templates/nix-gitlab-ci.yml @@ -0,0 +1,38 @@ +spec: + inputs: + image_tag: + type: string + description: "latest | latest-cachix | latest-attic etc." + default: latest +--- + +stages: + - build + - trigger + +nix-ci:build: + stage: build + image: registry.gitlab.com/technofab/nix-gitlab-ci/nix-ci:$[[ inputs.image_tag ]] + before_script: + - source setup_nix_ci + script: + # build the generated-gitlab-ci.yml + - nix build .#gitlab-ci-config + - install result generated-gitlab-ci.yml + after_script: + # upload to binary cache + - finalize_nix_ci + artifacts: + paths: + - generated-gitlab-ci.yml + +nix-ci:trigger: + stage: trigger + needs: + - nix-ci:build + trigger: + include: + - artifact: generated-gitlab-ci.yml + job: nix-ci:build + strategy: depend +