wip
This commit is contained in:
69
.gitlab-ci.yml
Normal file
69
.gitlab-ci.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user