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: stages:
- build - build
- deploy
- trigger - trigger
build:image: build:image:
@ -10,15 +11,33 @@ build:image:
parallel: parallel:
matrix: matrix:
- VARIANT: [ "", "-cachix", "-attic" ] - VARIANT: [ "", "-cachix", "-attic" ]
SYSTEM: [ "aarch64-linux", "x86_64-linux" ]
image: nixpkgs/nix-flakes:latest image: nixpkgs/nix-flakes:latest
before_script:
- nix profile install nixpkgs#skopeo
- export PATH="$PATH:$HOME/.nix-profile/bin"
script: script:
- nix build .#image${VARIANT} - nix build .#image${VARIANT} --system $SYSTEM
- skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp - mkdir -p build
"docker-archive:result" - install result build/image-${VARIANT}-${SYSTEM}
"docker://$CI_REGISTRY_IMAGE/nix-ci:${CI_COMMIT_BRANCH/main/latest}${VARIANT}" artifacts:
- skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp paths:
"docker-archive:result" - build/image-${VARIANT}-${SYSTEM}
"docker://$CI_REGISTRY_IMAGE/nix-ci:$(date +"%m-%d-%y")${VARIANT}"
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}