mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
GLib 2.79.2 split out the platform specific Gio APIs into a separate GIRs, while still keeping a copy in the Gio GIR. gjs then added warnings about the APIs being moved. This bumps the Gio(Unix) version requirement to 2.79.2 and switches to using the new GioUnix GIR. See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3892 See: https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/918 Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7539 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3288>
323 lines
8.2 KiB
YAML
323 lines
8.2 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/057b052e682d8e5a20c1eb2dd60d5b87d2b56856/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
|
|
- docs
|
|
- 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/40:x86_64-2024-04-29.0
|
|
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_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"'
|
|
when: never
|
|
- 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: 40
|
|
FDO_DISTRIBUTION_TAG: '2024-02-23.0'
|
|
FDO_DISTRIBUTION_PACKAGES:
|
|
gjs
|
|
nodejs
|
|
npm
|
|
meson
|
|
git
|
|
'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 &&
|
|
|
|
./.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 --stdout
|
|
artifacts:
|
|
reports:
|
|
junit: ${LINT_LOG}
|
|
when: always
|
|
|
|
eslint-doc:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora
|
|
stage: review
|
|
script:
|
|
- export NODE_PATH=$(npm root -g)
|
|
- ./.gitlab-ci/eslint-coding-style.sh
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
changes:
|
|
- HACKING.md
|
|
- .eslintrc.yml
|
|
- lint/*
|
|
|
|
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
|
|
- sudo meson install -C mutter/build
|
|
script:
|
|
- meson setup . build -Dbuildtype=debugoptimized -Dman=false -Dgtk_doc=true --werror --fatal-meson-warnings
|
|
- meson compile -C build
|
|
- sudo 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:
|
|
- sudo 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:
|
|
- sudo 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:
|
|
- sudo 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'
|
|
|
|
reference:
|
|
stage: docs
|
|
needs: ["build"]
|
|
script:
|
|
- mkdir -p reference/
|
|
- mv build/docs/reference/{shell/shell,st/st} reference/
|
|
artifacts:
|
|
paths:
|
|
- reference
|
|
|
|
pages:
|
|
stage: deploy
|
|
needs: ['reference']
|
|
script:
|
|
- mv reference/ public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
|
|
|
|
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"'
|