gitlab-ci: initial #9
2 changed files with 148 additions and 0 deletions
107
.gitlab-ci.yml
Normal file
107
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,107 @@
|
|||
stages:
|
||||
- build
|
||||
- release
|
||||
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
GIT_DEPTH: "500"
|
||||
|
||||
.verify:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_MERGE_REQUEST_ID
|
||||
interruptible: true
|
||||
script:
|
||||
- |
|
||||
sudo apk add rpm wget losetup coreutils eudev e2fsprogs xen
|
||||
doas addgroup $USER abuild
|
||||
export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin"
|
||||
git clone https://github.com/QubesOS/qubes-builder
|
||||
mkdir qubes-builder/qubes-src
|
||||
ln -s $CI_PROJECT_DIR qubes-builder/qubes-src/builder-alpine
|
||||
cp builder.conf qubes-builder/.
|
||||
git clone https://github.com/QubesOS/qubes-linux-template-builder qubes-builder/qubes-src/linux-template-builder
|
||||
echo "%define _arch x86_64" >> qubes-builder/qubes-src/linux-template-builder/templates.spec
|
||||
cd qubes-builder
|
||||
make linux-template-builder
|
||||
cp qubes-src/linux-template-builder/rpm/noarch/qubes-template-*.rpm $CI_PROJECT_DIR/.
|
||||
artifacts:
|
||||
paths:
|
||||
- qubes-template-*.rpm
|
||||
expire_in: 7 days
|
||||
when: always
|
||||
tags:
|
||||
- qubes-template
|
||||
|
||||
verify-alpine318:
|
||||
extends: .verify
|
||||
variables:
|
||||
CI_ALPINE_TARGET_RELEASE: alpine318
|
||||
|
||||
.build:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
interruptible: true
|
||||
script:
|
||||
- |
|
||||
sudo apk add rpm wget losetup coreutils eudev e2fsprogs xen
|
||||
doas addgroup $USER abuild
|
||||
export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin"
|
||||
git clone https://github.com/QubesOS/qubes-builder
|
||||
mkdir qubes-builder/qubes-src
|
||||
ln -s $CI_PROJECT_DIR qubes-builder/qubes-src/builder-alpine
|
||||
cp builder.conf qubes-builder/.
|
||||
git clone https://github.com/QubesOS/qubes-linux-template-builder qubes-builder/qubes-src/linux-template-builder
|
||||
echo "%define _arch x86_64" >> qubes-builder/qubes-src/linux-template-builder/templates.spec
|
||||
cd qubes-builder
|
||||
make linux-template-builder
|
||||
cp qubes-src/linux-template-builder/rpm/noarch/qubes-template-*.rpm $CI_PROJECT_DIR/.
|
||||
cd $CI_PROJECT_DIR
|
||||
CI_ALPINE_RPM_NAME="$(find qubes-template*.rpm)"
|
||||
echo "ALPINE_RPM_NAME=$CI_ALPINE_RPM_NAME" > job.env
|
||||
echo "Generating sha512sum"
|
||||
sha512sum $CI_ALPINE_RPM_NAME > $CI_ALPINE_RPM_NAME.sha512sum
|
||||
after_script:
|
||||
- echo "JOB_ID=$CI_JOB_ID" >> job.env
|
||||
artifacts:
|
||||
paths:
|
||||
- qubes-template*.rpm
|
||||
- qubes-template*.sha512sum
|
||||
expire_in: never
|
||||
when: always
|
||||
reports:
|
||||
dotenv: job.env
|
||||
tags:
|
||||
- qubes-template
|
||||
|
||||
build-alpine318:
|
||||
extends: .build
|
||||
variables:
|
||||
CI_ALPINE_TARGET_RELEASE: alpine318
|
||||
|
||||
release:
|
||||
stage: release
|
||||
allow_failure: false
|
||||
tags:
|
||||
- qubes-template
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
when: on_success
|
||||
script:
|
||||
- echo "Create Release $GI_COMMIT_TAG"
|
||||
- echo $JOB_ID
|
||||
- echo $ALPINE_RPM_NAME
|
||||
release:
|
||||
name: 'Release $CI_COMMIT_TAG'
|
||||
description: 'Release $CI_COMMIT_TAG'
|
||||
tag_name: '$CI_COMMIT_TAG'
|
||||
ref: '$CI_COMMIT_SHA'
|
||||
assets:
|
||||
links:
|
||||
- name: "$ALPINE_RPM_NAME"
|
||||
filepath: "/template/qubes-template-$CI_COMMIT_TAG.rpm"
|
||||
url: "https://lab.ilot.io/ayakael/qubes-builder-alpine/-/jobs/$JOB_ID/artifacts/raw/$ALPINE_RPM_NAME"
|
||||
- name: "$ALPINE_RPM_NAME.sha512sum"
|
||||
filepath: "/template/qubes-template-$CI_COMMIT_TAG.rpm.sha512sum"
|
||||
url: "https://lab.ilot.io/ayakael/qubes-builder-alpine/-/jobs/$JOB_ID/artifacts/raw/$ALPINE_RPM_NAME.sha512sum"
|
41
builder.conf
Normal file
41
builder.conf
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Debian based template configuration file for qubes-builder
|
||||
#
|
||||
# Copy or soft link this file into the qubes-builder directory
|
||||
# and name it builder.conf
|
||||
#
|
||||
# All lines which begins with "#" are treated as comments
|
||||
# Assigments can be made with VAR_NAME="VALUE"
|
||||
|
||||
# TEMPLATE_ONLY - Only build templates
|
||||
# Set 1 to only build template or clear the value for a full build
|
||||
# Default: novalue
|
||||
TEMPLATE_ONLY ?= 1
|
||||
|
||||
# Release Version
|
||||
# 2 - Release 2
|
||||
# 3 - Release 3
|
||||
# Default: 3
|
||||
RELEASE := 1
|
||||
|
||||
# GIT_PREFIX - Git release repo prefix
|
||||
# Default: R2: qubes-r2/ R3: qubes-r3/
|
||||
GIT_PREFIX := QubesOS/qubes-
|
||||
|
||||
# DISTS_VM - Choose the templates to build. Multiple templates can be defined
|
||||
# to build. Uncomment tempalte dist to build.
|
||||
DISTS_VM := alpine318
|
||||
COMPONENTS += builder-alpine
|
||||
BUILDER_PLUGINS += builder-alpine
|
||||
|
||||
# DEBUG - Print verbose messages about qubes-builder itself - set "1" to use it
|
||||
# Default: no value
|
||||
DEBUG = 0
|
||||
|
||||
# VERBOSE - Verbosity level of build process
|
||||
# 0 - print almost no messages but all build process
|
||||
# 1 - print (almost) only warnings
|
||||
# 2 - full output
|
||||
# Default: 0
|
||||
VERBOSE = 2
|
||||
|
||||
# vim: filetype=make
|
Loading…
Reference in a new issue