![Jonas Ådahl](/assets/img/avatar_default.png)
This rebuilds the automaticaly whenever the image tag changes. Whenever something in the image needs to change, alter the installation script and change the tag to the current date. This removes the -s (strict) argument from js68, as it doesn't exist in js78. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1492>
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/5888c7388134cbe4661600222fe9befb10441f6e/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'
|