vauxite-build/.gitlab-ci.yml
2024-03-04 06:47:45 -06:00

54 lines
1.8 KiB
YAML

stages:
- compose
- build
vauxite-compose-job:
image: registry.fedoraproject.org/fedora:latest
stage: compose
tags:
- podman-exec
variables:
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 container-selinux git git-core 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}-nonfree:${CI_COMMIT_REF_SLUG}"
before_script:
- sudo podman login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- cd oci/nonfree
- sudo podman build -t "$PODMAN_IMAGE_NAME" .
- sudo podman push "$PODMAN_IMAGE_NAME"
- |
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
sudo podman tag "$PODMAN_IMAGE_NAME" "$CI_REGISTRY_IMAGE:latest"
sudo podman push "$CI_REGISTRY_IMAGE:latest"
fi