mirror of
https://gitlab.com/TECHNOFAB/nix-gitlab-ci.git
synced 2025-12-12 18:20:07 +01:00
43 lines
1.4 KiB
YAML
43 lines
1.4 KiB
YAML
include:
|
|
- gitlab-ci.yml
|
|
|
|
stages:
|
|
- build
|
|
- deploy
|
|
- trigger
|
|
|
|
build:image:
|
|
stage: build
|
|
parallel:
|
|
matrix:
|
|
- VARIANT: [ "", "-cachix", "-attic" ]
|
|
SYSTEM: [ "aarch64-linux", "x86_64-linux" ]
|
|
image: nixpkgs/nix-flakes:latest
|
|
script:
|
|
- nix build .#image${VARIANT} --system $SYSTEM
|
|
- mkdir -p build
|
|
- install result build/image-${VARIANT}-${SYSTEM}
|
|
artifacts:
|
|
paths:
|
|
- build/image-${VARIANT}-${SYSTEM}
|
|
|
|
deploy:image:
|
|
stage: deploy
|
|
image: nixpkgs/nix-flakes:latest
|
|
parallel:
|
|
matrix:
|
|
- VARIANT: [ "", "-cachix", "-attic" ]
|
|
before_script:
|
|
- nix profile install nixpkgs#buildah
|
|
- export PATH="$PATH:$HOME/.nix-profile/bin"
|
|
- export REGISTRY_AUTH_FILE=${HOME}/auth.json
|
|
- echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
|
|
- mkdir -p /etc/containers && echo '{"default":[{"type":"insecureAcceptAnything"}]}' > /etc/containers/policy.json
|
|
script:
|
|
- buildah manifest create localhost/image${VARIANT} \
|
|
docker-archive:build/image${VARIANT}-aarch64-linux \
|
|
docker-archive:build/image${VARIANT}-x86_64-linux
|
|
- buildah manifest push --all localhost/image${VARIANT} \
|
|
docker://${CI_REGISTRY_IMAGE}/nix-ci:${CI_COMMIT_SHORT_SHA}${VARIANT}
|
|
- buildah manifest push --all localhost/image${VARIANT} \
|
|
docker://${CI_REGISTRY_IMAGE}/nix-ci:${CI_COMMIT_BRANCH/main/latest}${VARIANT}
|