Merge branch 'alatiera/flatpak-ci' into 'main'

ci: Build and publish aarch64 flatpaks

Closes #5594

See merge request GNOME/gtk!5523
This commit is contained in:
Matthias Clasen 2023-02-15 19:54:32 +00:00
commit b07d9d1912

View File

@ -27,16 +27,23 @@ variables:
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled -Ddemos=false -Dbuild-examples=false -Dbuild-tests=false -Dbuild-testsuite=true" FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled -Ddemos=false -Dbuild-examples=false -Dbuild-tests=false -Dbuild-testsuite=true"
MESON_TEST_TIMEOUT_MULTIPLIER: 3 MESON_TEST_TIMEOUT_MULTIPLIER: 3
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v40" FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v40"
FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
.only-default: workflow:
only: rules:
- branches - if: $CI_COMMIT_TAG
except: - if: $CI_COMMIT_BRANCH
- tags
default:
retry:
max: 2
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
interruptible: true
style-check-diff: style-check-diff:
extends: .only-default
image: $FEDORA_IMAGE image: $FEDORA_IMAGE
stage: check stage: check
when: manual when: manual
@ -44,7 +51,6 @@ style-check-diff:
- .gitlab-ci/run-style-check-diff.sh - .gitlab-ci/run-style-check-diff.sh
.build-fedora-default: .build-fedora-default:
extends: .only-default
image: $FEDORA_IMAGE image: $FEDORA_IMAGE
artifacts: artifacts:
when: always when: always
@ -160,7 +166,6 @@ fedora-mingw64:
- ninja -C _build - ninja -C _build
.mingw-defaults: .mingw-defaults:
extends: .only-default
stage: build stage: build
tags: tags:
- win32-ps - win32-ps
@ -192,9 +197,8 @@ msys2-mingw64:
macos: macos:
# Sadly, this fails regularly, and its failure is never enlightening # Sadly, this fails regularly, and its failure is never enlightening
allow_failure: true allow_failure: true
extends: .only-default rules:
only: - if: $CI_PROJECT_NAMESPACE == "GNOME"
- branches@GNOME/gtk
stage: build stage: build
tags: tags:
- macos - macos
@ -227,10 +231,9 @@ macos:
- "${CI_PROJECT_DIR}/_build/meson-logs" - "${CI_PROJECT_DIR}/_build/meson-logs"
vs2017-x64: vs2017-x64:
extends: .only-default
# TODO: Uncomment this when ready to merge. # TODO: Uncomment this when ready to merge.
#only: # rules:
# - branches@GNOME/gtk # - if: $CI_PROJECT_NAMESPACE == "GNOME"
stage: build stage: build
tags: tags:
- win32-ps - win32-ps
@ -243,7 +246,7 @@ vs2017-x64:
- "${CI_PROJECT_DIR}/_build/meson-logs" - "${CI_PROJECT_DIR}/_build/meson-logs"
.flatpak-defaults: .flatpak-defaults:
image: $FLATPAK_IMAGE image: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
stage: flatpak stage: flatpak
allow_failure: true allow_failure: true
tags: tags:
@ -253,65 +256,67 @@ vs2017-x64:
- "${APPID}-dev.flatpak" - "${APPID}-dev.flatpak"
- 'repo.tar' - 'repo.tar'
expire_in: 1 day expire_in: 1 day
rules:
# Only build Flatpak bundles automatically on main
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_BRANCH != "main"
when: "manual"
script: script:
- bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}" - bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}"
# Manual jobs, for branches and MRs flatpak:demo:
.flatpak-manual: extends: '.flatpak-defaults'
extends: .flatpak-defaults
when: manual
# Only build Flatpak bundles automatically on main
.flatpak-main:
extends: .flatpak-defaults
only:
- main
flatpak-manual:demo:
extends: .flatpak-manual
needs: [] needs: []
variables: variables:
APPID: org.gtk.Demo4 APPID: org.gtk.Demo4
flatpak-main:demo: flatpak:demo:aarch64:
extends: .flatpak-main extends: '.flatpak-defaults'
needs: [] needs: []
tags:
- flatpak-aarch64
variables: variables:
APPID: org.gtk.Demo4 APPID: org.gtk.Demo4
flatpak-manual:widget-factory: flatpak:widget-factory:
extends: .flatpak-manual extends: '.flatpak-defaults'
needs: [] needs: []
variables: variables:
APPID: org.gtk.WidgetFactory4 APPID: org.gtk.WidgetFactory4
flatpak-main:widget-factory: flatpak:widget-factory:aarch64:
extends: .flatpak-main extends: '.flatpak-defaults'
needs: [] needs: []
tags:
- flatpak-aarch64
variables: variables:
APPID: org.gtk.WidgetFactory4 APPID: org.gtk.WidgetFactory4
flatpak-manual:icon-browser: flatpak:icon-browser:
extends: .flatpak-manual extends: '.flatpak-defaults'
needs: [] needs: []
variables: variables:
APPID: org.gtk.IconBrowser4 APPID: org.gtk.IconBrowser4
flatpak-main:icon-browser: flatpak:icon-browser:aarch64:
extends: .flatpak-main extends: '.flatpak-defaults'
needs: [] needs: []
tags:
- flatpak-aarch64
variables: variables:
APPID: org.gtk.IconBrowser4 APPID: org.gtk.IconBrowser4
flatpak-manual:node-editor: flatpak:node-editor:
extends: .flatpak-manual extends: '.flatpak-defaults'
needs: [] needs: []
variables: variables:
APPID: org.gtk.gtk4.NodeEditor APPID: org.gtk.gtk4.NodeEditor
flatpak-main:node-editor: flatpak:node-editor:aarch64:
extends: .flatpak-main extends: '.flatpak-defaults'
needs: [] needs: []
tags:
- flatpak-aarch64
variables: variables:
APPID: org.gtk.gtk4.NodeEditor APPID: org.gtk.gtk4.NodeEditor
@ -320,23 +325,35 @@ flatpak-main:node-editor:
# https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/DevOps-with-Flatpak # https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/DevOps-with-Flatpak
nightly demo: nightly demo:
extends: '.publish_nightly' extends: '.publish_nightly'
dependencies: ['flatpak-main:demo'] needs: ['flatpak:demo']
needs: ['flatpak-main:demo']
nightly demo aarch64:
extends: '.publish_nightly'
needs: ['flatpak:demo:aarch64']
nightly factory: nightly factory:
extends: '.publish_nightly' extends: '.publish_nightly'
dependencies: ['flatpak-main:widget-factory'] needs: ['flatpak:widget-factory']
needs: ['flatpak-main:widget-factory']
nightly factory aarch64:
extends: '.publish_nightly'
needs: ['flatpak:widget-factory:aarch64']
nightly icon-browser: nightly icon-browser:
extends: '.publish_nightly' extends: '.publish_nightly'
dependencies: ['flatpak-main:icon-browser'] needs: ['flatpak:icon-browser']
needs: ['flatpak-main:icon-browser']
nightly icon-browser aarch64:
extends: '.publish_nightly'
needs: ['flatpak:icon-browser:aarch64']
nightly node-editor: nightly node-editor:
extends: '.publish_nightly' extends: '.publish_nightly'
dependencies: ['flatpak-main:node-editor'] needs: ['flatpak:node-editor']
needs: ['flatpak-main:node-editor']
nightly node-editor aarch64:
extends: '.publish_nightly'
needs: ['flatpak:node-editor:aarch64']
static-scan: static-scan:
image: $FEDORA_IMAGE image: $FEDORA_IMAGE
@ -419,9 +436,9 @@ reference:
publish-docs: publish-docs:
image: fedora:latest image: fedora:latest
stage: publish stage: publish
interruptible: false
needs: ['reference'] needs: ['reference']
script: script:
- "curl -X POST -F token=${PAGES_TRIGGER_TOKEN} -F ref=docs-gtk-org https://gitlab.gnome.org/api/v4/projects/665/trigger/pipeline" - "curl -X POST -F token=${PAGES_TRIGGER_TOKEN} -F ref=docs-gtk-org https://gitlab.gnome.org/api/v4/projects/665/trigger/pipeline"
only: rules:
refs: - if: $CI_COMMIT_REF_NAME == "main"
- main