aboutsummaryrefslogtreecommitdiffci
path: root/Jenkinsfile
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile163
1 files changed, 0 insertions, 163 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index 1732307..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,163 +0,0 @@
-pipeline {
- agent none
-
- options {
- timestamps()
- }
-
- environment {
- KIWI_FILE = 'Fedora.kiwi'
- IMAGE_TYPE = 'iso'
- IMAGE_PROFILE = 'Workstation-Live'
- IMAGE_VERSION = '45'
- OUTPUT_DIR = 'outdir'
-
- B2_ENDPOINT = 'https://s3.eu-central-003.backblazeb2.com'
- AWS_DEFAULT_REGION = 'eu-central-003'
- ISO_BUCKET = 'dist-sayagit-fedora-iso'
-
- // Must match the <source path="..."/> in
- // repositories/kernel-sp12in.xml.
- KERNEL_SURFACE_REPO_URL = 'https://rpm.sayag.it/kernel-sp12in/fedora/45/aarch64'
-
- // awscli2 sends CRC32 checksums by default, which B2 rejects. Ask for
- // them only where the S3 API requires them.
- AWS_REQUEST_CHECKSUM_CALCULATION = 'when_required'
- AWS_RESPONSE_CHECKSUM_VALIDATION = 'when_required'
- }
-
- stages {
- stage('Build Fedora Workstation Live ISO (ARM64)') {
- agent {
- kubernetes {
- defaultContainer 'kiwi'
- yaml """
-apiVersion: v1
-kind: Pod
-metadata:
- namespace: jenkins
-spec:
- nodeSelector:
- kubernetes.io/arch: arm64
- containers:
- - name: kiwi
- image: fedora:44
- imagePullPolicy: Always
- command: [ 'sleep' ]
- args: [ 'infinity' ]
- tty: true
- securityContext:
- privileged: true
- resources:
- requests:
- cpu: "2"
- memory: 4Gi
- ephemeral-storage: 20Gi
- limits:
- memory: 12Gi
- ephemeral-storage: 50Gi
-"""
- }
- }
- steps {
- checkout scm
- container('kiwi') {
- script {
- try {
- // The kernel-surface RPM is a build input, not
- // something this repository can produce: the image
- // installs kernel-surface by name and <ignore>s
- // Fedora's kernel packages. Its pipeline publishes
- // it to rpm.sayag.it, which repositories/kernel-sp12in.xml
- // points at directly, so there is nothing to stage
- // here. Fail now rather than several minutes into
- // kiwi on an unresolvable package name.
- sh '''
- set -eux
-
- dnf --assumeyes install curl
-
- repomd="${KERNEL_SURFACE_REPO_URL}/repodata/repomd.xml"
- if ! curl -fsS --retry 3 -o /dev/null "${repomd}"; then
- echo "No kernel-surface repository at ${repomd}." >&2
- echo "Run the kernel-surface pipeline for Fedora ${IMAGE_VERSION} first." >&2
- exit 1
- fi
- '''
-
- sh '''
- dnf --assumeyes install git kiwi kiwi-systemdeps distribution-gpg-keys
- git config --global --add safe.directory .
- git submodule update --init --recursive
-
- ./kiwi-build \\
- --kiwi-file="${KIWI_FILE}" \\
- --image-type="${IMAGE_TYPE}" \\
- --image-profile="${IMAGE_PROFILE}" \\
- --output-dir "${OUTPUT_DIR}"
-
- ls -lh "${OUTPUT_DIR}-build"
- '''
- } catch (Exception e) {
- echo "Caught exception: ${e.getMessage()}"
- currentBuild.result = 'FAILURE'
- throw e
- }
- }
- stash name: "fedora-workstation-live-iso-stash", includes: "${OUTPUT_DIR}-build/Fedora.aarch64-${IMAGE_VERSION}.iso"
- }
- }
- }
-
- stage('Push Fedora Workstation Live ISO (ARM64)') {
- agent {
- kubernetes {
- defaultContainer 's5cmd'
- yaml """
-apiVersion: v1
-kind: Pod
-metadata:
- namespace: jenkins
-spec:
- containers:
- - name: s5cmd
- image: peakcom/s5cmd:v2.3.0
- imagePullPolicy: IfNotPresent
- command: [ 'sleep' ]
- args: [ 'infinity' ]
- tty: true
- resources:
- requests:
- cpu: "0.5"
- memory: 4Gi
-"""
- }
- }
- steps {
- container('s5cmd') {
- unstash "fedora-workstation-live-iso-stash"
- withCredentials([usernamePassword(
- credentialsId: 'backblaze-b2-dist-iso',
- usernameVariable: 'AWS_ACCESS_KEY_ID',
- passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
- sh '''
- set -eux
-
- cd "${OUTPUT_DIR}-build"
- src="Fedora.aarch64-${IMAGE_VERSION}.iso"
- moddate=$(date -r "${src}" -u +"%Y%m%d-%H%M%S")
- dst="Fedora.Surface-Pro-12in.${IMAGE_PROFILE}.${IMAGE_VERSION}.${moddate}.aarch64.iso"
- mv "${src}" "${dst}"
- ls -lh
-
- /s5cmd --endpoint-url "${B2_ENDPOINT}" cp \\
- --content-type "application/x-iso9660-image" \\
- "${dst}" \\
- "s3://${ISO_BUCKET}/fedora/${IMAGE_VERSION}/aarch64/${dst}"
- '''
- }
- }
- }
- }
- }
-}