mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
The mutter image set up a default user that doesn't exist outside the container, which made it unsuitable for toolbox. Rebuild the image after reverting the change until we figure out how to properly fix it.
303 lines
7.8 KiB
YAML
303 lines
7.8 KiB
YAML
include:
|
|
- remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/HEAD/flatpak/flatpak_ci_initiative.yml'
|
|
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/34f4ade99434043f88e164933f570301fd18b125/templates/fedora.yml'
|
|
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/34f4ade99434043f88e164933f570301fd18b125/templates/ci-fairy.yml'
|
|
|
|
stages:
|
|
- pre_review
|
|
- prep
|
|
- review
|
|
- build
|
|
- test
|
|
- analyze
|
|
- deploy
|
|
|
|
default:
|
|
image: $MUTTER_CI_IMAGE
|
|
# Cancel jobs if newer commits are pushed to the branch
|
|
interruptible: true
|
|
# Auto-retry jobs in case of infra failures
|
|
retry:
|
|
max: 1
|
|
when:
|
|
- 'runner_system_failure'
|
|
- 'stuck_or_timeout_failure'
|
|
- 'scheduler_failure'
|
|
- 'api_failure'
|
|
|
|
variables:
|
|
MUTTER_CI_IMAGE: registry.gitlab.gnome.org/gnome/mutter/fedora/38:x86_64-2023-06-20.1
|
|
FDO_UPSTREAM_REPO: GNOME/gnome-shell
|
|
BUNDLE: "extensions-git.flatpak"
|
|
LINT_LOG: "eslint-report.xml"
|
|
LINT_MR_LOG: "eslint-mr-report.xml"
|
|
|
|
workflow:
|
|
rules:
|
|
- if: '$CI_MERGE_REQUEST_IID'
|
|
- if: '$CI_COMMIT_TAG'
|
|
- if: '$CI_COMMIT_BRANCH'
|
|
|
|
.pipeline_guard: &pipeline_guard
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
- if: '$CI_COMMIT_TAG'
|
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
|
- when: 'manual'
|
|
|
|
.gnome-shell.fedora:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 38
|
|
FDO_DISTRIBUTION_TAG: '2023-06-07.1'
|
|
FDO_DISTRIBUTION_PACKAGES:
|
|
gjs
|
|
nodejs
|
|
npm
|
|
meson
|
|
pkgconfig(gobject-introspection-1.0)
|
|
pkgconfig(gio-2.0)
|
|
pkgconfig(gio-unix-2.0)
|
|
pkgconfig(gnome-autoar-0)
|
|
pkgconfig(json-glib-1.0)
|
|
FDO_DISTRIBUTION_EXEC: |
|
|
# For static analysis with eslint
|
|
npm install -g eslint@^8.0.0 eslint-plugin-jsdoc@^46.0.0 &&
|
|
|
|
dnf group install -y 'Development Tools' \
|
|
'C Development Tools and Libraries' &&
|
|
|
|
./.gitlab-ci/install-meson-project.sh \
|
|
https://gitlab.gnome.org/fmuellner/gjs-ci-tools.git \
|
|
main &&
|
|
|
|
./.gitlab-ci/install-meson-project.sh \
|
|
--subdir subprojects/extensions-tool/ \
|
|
--prepare ./generate-translations.sh \
|
|
-Dman=false \
|
|
https://gitlab.gnome.org/GNOME/gnome-shell.git \
|
|
main
|
|
|
|
check_commit_log:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: pre_review
|
|
variables:
|
|
GIT_DEPTH: "100"
|
|
script:
|
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
|
then
|
|
ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ;
|
|
else
|
|
echo "Not a merge request" ;
|
|
fi
|
|
<<: *pipeline_guard
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- commit-message-junit-report.xml
|
|
reports:
|
|
junit: commit-message-junit-report.xml
|
|
|
|
check-merge-request:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: pre_review
|
|
script:
|
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
|
then
|
|
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
|
else
|
|
echo "Not a merge request" ;
|
|
fi
|
|
<<: *pipeline_guard
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- check-merge-request-report.xml
|
|
reports:
|
|
junit: check-merge-request-report.xml
|
|
|
|
build-fedora-container:
|
|
extends:
|
|
- .fdo.container-build@fedora@x86_64
|
|
- .gnome-shell.fedora
|
|
stage: prep
|
|
|
|
js_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- gjs-check-syntax
|
|
artifacts:
|
|
reports:
|
|
junit: gjs-check-syntax.junit.xml
|
|
|
|
eslint:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- export NODE_PATH=$(npm root -g)
|
|
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit
|
|
artifacts:
|
|
reports:
|
|
junit: ${LINT_LOG}
|
|
when: always
|
|
|
|
eslint_mr:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- export NODE_PATH=$(npm root -g)
|
|
- ./.gitlab-ci/run-eslint --output-file ${LINT_MR_LOG} --format junit
|
|
--remote ${CI_MERGE_REQUEST_PROJECT_URL}.git
|
|
--branch ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
|
|
only:
|
|
- merge_requests
|
|
artifacts:
|
|
reports:
|
|
junit: ${LINT_MR_LOG}
|
|
when: always
|
|
|
|
potfile_c_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- ./.gitlab-ci/check-potfiles.sh
|
|
|
|
potfile_js_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- gjs-check-potfiles
|
|
artifacts:
|
|
reports:
|
|
junit: gjs-check-potfiles.junit.xml
|
|
|
|
build:
|
|
stage: build
|
|
needs: ["check_commit_log"]
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
before_script:
|
|
- .gitlab-ci/checkout-mutter.sh
|
|
- meson mutter mutter/build --prefix=/usr
|
|
- meson install -C mutter/build
|
|
script:
|
|
- meson . build -Dbuildtype=debugoptimized -Dman=false --werror
|
|
- meson compile -C build
|
|
- meson install -C build
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- mutter
|
|
- build
|
|
|
|
test:
|
|
stage: test
|
|
needs: ["build"]
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
|
NO_AT_BRIDGE: "1"
|
|
before_script:
|
|
- meson install -C mutter/build
|
|
- mkdir -m 700 $XDG_RUNTIME_DIR
|
|
script:
|
|
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- build/meson-logs/testlog.txt
|
|
reports:
|
|
junit: build/meson-logs/testlog.junit.xml
|
|
when: on_failure
|
|
|
|
test-coverity:
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $GNOME_SHELL_SCHEDULED_JOB == "coverity"'
|
|
when: always
|
|
- when: manual
|
|
needs: ["build"]
|
|
stage: analyze
|
|
allow_failure: true
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
before_script:
|
|
- meson install -C mutter/build
|
|
script:
|
|
- .gitlab-ci/download-coverity-tarball.sh
|
|
- CC=clang meson coverity-build -Dman=false
|
|
- ./coverity/cov-analysis-linux64-*/bin/cov-build --fs-capture-search js --dir cov-int meson compile -C coverity-build
|
|
- tar czf cov-int.tar.gz cov-int
|
|
- curl https://scan.coverity.com/builds?project=GNOME+Shell
|
|
--form token=$COVERITY_TOKEN --form email=carlosg@gnome.org
|
|
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
|
|
--form description="GitLab CI build"
|
|
cache:
|
|
key: coverity-tarball
|
|
paths:
|
|
- coverity
|
|
|
|
flatpak:
|
|
stage: build
|
|
needs: ["check_commit_log"]
|
|
variables:
|
|
SUBPROJECT: "subprojects/extensions-app"
|
|
# Your manifest path
|
|
MANIFEST_PATH: "$SUBPROJECT/build-aux/flatpak/org.gnome.Extensions.json"
|
|
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
|
FLATPAK_MODULE: "gnome-extensions-app"
|
|
APP_ID: "org.gnome.Extensions.Devel"
|
|
extends: .flatpak
|
|
|
|
nightly:
|
|
extends: '.publish_nightly'
|
|
|
|
dist:
|
|
variables:
|
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
|
NO_AT_BRIDGE: "1"
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
stage: deploy
|
|
needs: ["build"]
|
|
before_script:
|
|
- meson install -C mutter/build
|
|
- mkdir -m 700 $XDG_RUNTIME_DIR
|
|
script:
|
|
- dbus-run-session xvfb-run meson dist -C build
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
changes:
|
|
- "**/meson.build"
|
|
- meson/*
|
|
|
|
|
|
dist-tarball:
|
|
extends: dist
|
|
artifacts:
|
|
expose_as: 'Get tarball here'
|
|
paths:
|
|
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG'
|
|
|
|
build-toolbox:
|
|
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
|
|
stage: deploy
|
|
needs: []
|
|
script:
|
|
- .gitlab-ci/build-toolbox-image.sh $MUTTER_CI_IMAGE
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
|
|
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/ && $CI_PROJECT_NAMESPACE == "GNOME"'
|