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' - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/7ea696055e322cc7aa4bcbe5422b56a198c4bdff/templates/ci-fairy.yml" stages: - pre_review - 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" image: registry.gitlab.gnome.org/gnome/mutter/fedora/33:2020-11-20.1 .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 check_commit_log: extends: - .fdo.ci-fairy stage: pre_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 build-fedora-container: extends: - .fdo.container-build@fedora@x86_64 - .gnome-shell.fedora:33 stage: prep <<: *only_default 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: 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_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: 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: 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'