feat: add aarch64 ci build

This commit is contained in:
technofab 2024-03-26 13:43:17 +01:00
parent c272bfd812
commit fd84571134

View file

@ -3,6 +3,7 @@ include:
stages:
- build
- deploy
- trigger
build:image:
@ -10,15 +11,33 @@ build:image:
parallel:
matrix:
- VARIANT: [ "", "-cachix", "-attic" ]
SYSTEM: [ "aarch64-linux", "x86_64-linux" ]
image: nixpkgs/nix-flakes:latest
before_script:
- nix profile install nixpkgs#skopeo
- export PATH="$PATH:$HOME/.nix-profile/bin"
script:
- nix build .#image${VARIANT}
- 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}"
- 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}"
- 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}