2e976cd9bf
The image registry must be enabled for the CI to work, as the container image from the upstream registry is placed (as a reference, more or less) in the local registry. Recently, ci-templates got a bit more helpful if this happened, and will fail up front and generate a JUnit report with a message describing the issue. Update to this version. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1505>
189 lines
5.1 KiB
YAML
189 lines
5.1 KiB
YAML
include:
|
|
- remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
|
|
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/7ea696055e322cc7aa4bcbe5422b56a198c4bdff/templates/fedora.yml'
|
|
|
|
stages:
|
|
- prep
|
|
- review
|
|
- build
|
|
- test
|
|
- deploy
|
|
|
|
variables:
|
|
BUNDLE: "extensions-git.flatpak"
|
|
JS_LOG: "js-report.txt"
|
|
LINT_LOG: "eslint-report.xml"
|
|
LINT_MR_LOG: "eslint-mr-report.xml"
|
|
|
|
.only_default: &only_default
|
|
only:
|
|
- branches
|
|
- tags
|
|
- merge_requests
|
|
|
|
.gnome-shell.fedora:33:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 33
|
|
FDO_DISTRIBUTION_TAG: '2020-11-17.0'
|
|
FDO_UPSTREAM_REPO: GNOME/gnome-shell
|
|
FDO_DISTRIBUTION_EXEC: |
|
|
# For syntax checks using js78
|
|
dnf install -y findutils mozjs78-devel &&
|
|
|
|
# For static analysis with eslint
|
|
dnf install -y nodejs &&
|
|
npm install -g eslint &&
|
|
|
|
dnf group install -y 'Development Tools' \
|
|
'C Development Tools and Libraries' &&
|
|
dnf install -y meson &&
|
|
dnf install -y 'pkgconfig(gio-2.0)' 'pkgconfig(gio-unix-2.0)' \
|
|
'pkgconfig(gnome-autoar-0)' 'pkgconfig(json-glib-1.0)' &&
|
|
|
|
./.gitlab-ci/install-meson-project.sh \
|
|
-Dman=false \
|
|
https://gitlab.gnome.org/GNOME/gnome-shell.git \
|
|
3.38.0 \
|
|
subprojects/extensions-tool/ \
|
|
./generate-translations.sh &&
|
|
|
|
dnf clean all
|
|
|
|
build-fedora-container:
|
|
extends:
|
|
- .fdo.container-build@fedora@x86_64
|
|
- .gnome-shell.fedora:33
|
|
stage: prep
|
|
<<: *only_default
|
|
|
|
check_commit_log:
|
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
|
stage: review
|
|
variables:
|
|
GIT_DEPTH: "100"
|
|
script:
|
|
- ./.gitlab-ci/check-commit-log.sh
|
|
<<: *only_default
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- commit-message-junit-report.xml
|
|
reports:
|
|
junit: commit-message-junit-report.xml
|
|
|
|
js_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora:33
|
|
stage: review
|
|
script:
|
|
- find js -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
|
|
- (! grep -q . $JS_LOG)
|
|
<<: *only_default
|
|
artifacts:
|
|
paths:
|
|
- ${JS_LOG}
|
|
when: on_failure
|
|
|
|
eslint:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora:33
|
|
stage: review
|
|
script:
|
|
- export NODE_PATH=$(npm root -g)
|
|
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit
|
|
<<: *only_default
|
|
artifacts:
|
|
reports:
|
|
junit: ${LINT_LOG}
|
|
when: always
|
|
|
|
eslint_mr:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
|
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_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora:33
|
|
stage: review
|
|
script:
|
|
- ./.gitlab-ci/check-potfiles.sh
|
|
<<: *only_default
|
|
|
|
no_template_check:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .gnome-shell.fedora:33
|
|
stage: review
|
|
script:
|
|
- ./.gitlab-ci/check-template-strings.sh
|
|
<<: *only_default
|
|
|
|
build:
|
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
|
stage: build
|
|
needs: ["check_commit_log"]
|
|
before_script:
|
|
- .gitlab-ci/checkout-mutter.sh
|
|
- meson mutter mutter/build --prefix=/usr -Dtests=false
|
|
- ninja -C mutter/build install
|
|
script:
|
|
- meson . build -Dbuiltype=debugoptimized -Dman=false --werror
|
|
- ninja -C build
|
|
- ninja -C build install
|
|
<<: *only_default
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- mutter
|
|
- build
|
|
|
|
test:
|
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
|
stage: test
|
|
needs: ["build"]
|
|
variables:
|
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
|
NO_AT_BRIDGE: "1"
|
|
before_script:
|
|
- ninja -C mutter/build install
|
|
script:
|
|
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
|
|
<<: *only_default
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- build/meson-logs/testlog.txt
|
|
when: on_failure
|
|
|
|
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"
|
|
extends: .flatpak
|
|
<<: *only_default
|
|
|
|
nightly:
|
|
extends: '.publish_nightly'
|
|
variables:
|
|
BUNDLES: '$BUNDLE'
|