Files
wunker-os/.gitlab-ci.yml

98 lines
2.2 KiB
YAML

workflow:
rules:
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: "$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS"
when: never
- if: "$CI_COMMIT_BRANCH"
stages:
- base-images
- build
variables:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_CERTDIR: /certs
DOCKER_TLS_VERIFY: 1
DOCKER_CERT_PATH: $DOCKER_TLS_CERTDIR/client
RUST_LOG_STYLE: always
BB_SIGNING_DRIVER: sigstore
BB_CACHE_LAYERS: 'true'
CLICOLOR_FORCE: 1
TAG: main
.build:
services:
- docker:dind
interruptible: true
image: ghcr.io/blue-build/cli:$TAG
before_script:
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
- export COSIGN_PRIVATE_KEY=$(cat .secure_files/cosign.key)
- sleep 5
script:
- bluebuild build "./recipes/${RECIPE}"
base-images:
extends:
- .build
stage: base-images
variables:
BB_BUILD_PUSH: 'true'
BB_BUILD_RECHUNK: 'true'
rules:
# Run when any of the base recipes change
- changes:
- recipes/base*.yml
- recipes/base/*
- .gitlab-ci.yml
when: always
# Run on a scheduled pipeline (weekly or otherwise)
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
# All other cases: do not run
- when: never
parallel:
matrix:
- RECIPE:
- base.yml
# - base-nvidia.yml
# - base-cosmic.yml
# - base-cosmic-nvidia.yml
- base-combo.yml
- base-combo-nvidia.yml
- base-kinoite.yml
# - base-kinoite-nvidia.yml
legacy-build-images:
extends:
- .build
stage: build
variables:
BB_BUILD_PUSH: 'true'
needs: []
parallel:
matrix:
- RECIPE:
- wke-server.yml
build-images:
extends:
- .build
stage: build
variables:
BB_BUILD_PUSH: 'true'
needs:
- job: base-images
optional: true
parallel:
matrix:
- RECIPE:
- wke-worker.yml
- wke-fw-desktop.yml
- cp-laptop.yml
- jp-desktop-nvidia.yml
- jp-laptop.yml