70 lines
2.4 KiB
YAML
70 lines
2.4 KiB
YAML
stages:
|
|
- build
|
|
- upload
|
|
- release
|
|
|
|
build-x86_64:
|
|
stage: build
|
|
image: ubuntu:24.04
|
|
script:
|
|
- apt-get update && apt-get install -y curl xz-utils sudo
|
|
- curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --no-confirm
|
|
- . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
- nix build .#nixosConfigurations.sandbox.config.system.build.image --out-link result-x86_64
|
|
- cp $(find -L result-x86_64 -name '*.qcow2') sandbox-x86_64.qcow2
|
|
artifacts:
|
|
paths:
|
|
- sandbox-x86_64.qcow2
|
|
expire_in: 1 week
|
|
|
|
build-aarch64:
|
|
stage: build
|
|
image: ubuntu:24.04
|
|
tags:
|
|
- aarch64
|
|
allow_failure: true
|
|
script:
|
|
- apt-get update && apt-get install -y curl xz-utils sudo
|
|
- curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --no-confirm
|
|
- . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
- nix build .#nixosConfigurations.sandbox-aarch64.config.system.build.image --out-link result-aarch64
|
|
- cp $(find -L result-aarch64 -name '*.qcow2') sandbox-aarch64.qcow2
|
|
artifacts:
|
|
paths:
|
|
- sandbox-aarch64.qcow2
|
|
expire_in: 1 week
|
|
|
|
upload:
|
|
stage: upload
|
|
image: curlimages/curl:latest
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
script:
|
|
- |
|
|
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
--upload-file sandbox-x86_64.qcow2 \
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/sandbox/${CI_COMMIT_TAG}/sandbox-x86_64.qcow2"
|
|
- |
|
|
if [ -f sandbox-aarch64.qcow2 ]; then
|
|
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
|
--upload-file sandbox-aarch64.qcow2 \
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/sandbox/${CI_COMMIT_TAG}/sandbox-aarch64.qcow2"
|
|
fi
|
|
|
|
release:
|
|
stage: release
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
script:
|
|
- echo "Creating release $CI_COMMIT_TAG"
|
|
release:
|
|
tag_name: $CI_COMMIT_TAG
|
|
description: "Sandbox VM $CI_COMMIT_TAG"
|
|
assets:
|
|
links:
|
|
- name: sandbox-x86_64.qcow2
|
|
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/sandbox/${CI_COMMIT_TAG}/sandbox-x86_64.qcow2"
|
|
- name: sandbox-aarch64.qcow2
|
|
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/sandbox/${CI_COMMIT_TAG}/sandbox-aarch64.qcow2"
|