First attempt at pipeline

This commit is contained in:
Jeffrey Serio 2024-03-03 19:31:29 -06:00
parent 2bb58a71ad
commit ee6ab088bb

53
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,53 @@
stages:
- compose
- build
vauxite-compose-job:
image: registry.fedoraproject.org/fedora:latest
stage: compose
tags:
- podman-exec
variables:
CLEAN_BUILD: false
RELVER: "39"
SOURCE_URL: "https://pagure.io/workstation-ostree-config"
CACHE_DIR: "/cache"
BUILD_REPO: "/build-repo"
SOURCE_REPO: "/source-repo"
before_script:
- printf "fastestmirror=True\ndeltarpm=True\n" | tee -a /etc/dnf/dnf.conf
- dnf update -y
- dnf install -y ostree podman rpm-ostree rsync
- podman login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- mkdir -p "$(pwd)/.tmp"
- |
if [ ! -d "${BUILD_REPO}/objects" ]; then
echo "Previous build repo not found. Initialize new build repo in archive mode."
ostree --repo="${BUILD_REPO}" init --mode=archive
fi
- if [ ! -d "${SOURCE_REPO}/.git" ]; then
echo "Source repo not found. Clone from upstream."
git clone -b "f${RELVER}" "${SOURCE_URL}" "${SOURCE_REPO}"
fi
- rsync -aAX "${SOURCE_REPO}"/ "$(pwd)/.tmp"
- rsync -aAX "$(pwd)/src/" "$(pwd)/.tmp"
- rpm-ostree compose image --cachedir "${CACHE_DIR}" --initialize-mode=if-not-exists --format=registry "$(pwd)/.tmp/vauxite.json" "${CI_REGISTRY_IMAGE}:${RELVER}"
vauxite-nonfree-job:
stage: build
tags:
- shell-exec
variables:
- PODMAN_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
before_script:
- podman login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- cd oci/nonfree
- podman build --pull -t "$PODMAN_IMAGE_NAME" .
- podman push "$PODMAN_IMAGE_NAME"
- |
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
podman tag "$PODMAN_IMAGE_NAME" "$CI_REGISTRY_IMAGE:latest"
podman push "$CI_REGISTRY_IMAGE:latest"
fi