f1f05b58b9
The template was added recently, so the same rules don't have to be replicated by every project. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/385>
168 lines
3.8 KiB
YAML
168 lines
3.8 KiB
YAML
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
include:
|
|
- project: Infrastructure/freedesktop-ci-templates
|
|
file: templates/fedora.yml
|
|
- project: Infrastructure/freedesktop-ci-templates
|
|
file: templates/ci-fairy.yml
|
|
- project: GNOME/citemplates
|
|
file: templates/default-rules.yml
|
|
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
|
|
inputs:
|
|
job-stage: deploy
|
|
dist-job-name: fedora-dist-tarball
|
|
tarball-artifact-path: "$TARBALL_ARTIFACT_PATH"
|
|
|
|
stages:
|
|
- pre_review
|
|
- prepare
|
|
- review
|
|
- build
|
|
- deploy
|
|
|
|
default:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/41:2024-10-18.0
|
|
|
|
variables:
|
|
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
|
|
MESON_BUILD_DIR: build
|
|
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
|
|
|
|
.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'
|
|
|
|
.prereview_req: &prereview_req
|
|
needs:
|
|
- check_commit_log
|
|
- check-merge-request
|
|
|
|
check_commit_log:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: pre_review
|
|
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
|
|
|
|
check-reuse:
|
|
stage: pre_review
|
|
image:
|
|
name: fsfe/reuse:latest
|
|
entrypoint: [""]
|
|
script:
|
|
- reuse lint
|
|
|
|
js_check:
|
|
stage: review
|
|
<<: *prereview_req
|
|
script:
|
|
- gjs-check-syntax
|
|
|
|
eslint:
|
|
stage: review
|
|
<<: *prereview_req
|
|
variables:
|
|
LINT_LOG: "eslint-report.xml"
|
|
script:
|
|
- export NODE_PATH=$(npm root -g)
|
|
- ./.gitlab-ci/run-eslint --output-file "$LINT_LOG" --format junit --stdout
|
|
artifacts:
|
|
paths:
|
|
- "$LINT_LOG"
|
|
reports:
|
|
junit: "$LINT_LOG"
|
|
|
|
potfile_js_check:
|
|
stage: review
|
|
<<: *prereview_req
|
|
script:
|
|
- gjs-check-potfiles
|
|
artifacts:
|
|
reports:
|
|
junit: gjs-check-potfiles.junit.xml
|
|
|
|
build-bundles:
|
|
stage: build
|
|
<<: *prereview_req
|
|
script:
|
|
- ./export-zips.sh
|
|
artifacts:
|
|
name: 'Extension bundles'
|
|
expose_as: 'Get Extension bundles here'
|
|
paths:
|
|
- zip-files/
|
|
|
|
fedora-build:
|
|
stage: build
|
|
<<: *prereview_req
|
|
script:
|
|
- meson setup "$MESON_BUILD_DIR" --werror -Dextension_set=all -Dclassic_mode=true
|
|
- meson compile -C "$MESON_BUILD_DIR"
|
|
- meson test -C "$MESON_BUILD_DIR"
|
|
- meson install -C "$MESON_BUILD_DIR"
|
|
artifacts:
|
|
paths:
|
|
- "$MESON_BUILD_DIR"
|
|
|
|
fedora-dist:
|
|
stage: deploy
|
|
needs:
|
|
- fedora-build
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
script:
|
|
- meson dist -C "$MESON_BUILD_DIR"
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
changes:
|
|
- "**/meson.build"
|
|
- meson/*
|
|
|
|
fedora-dist-tarball:
|
|
extends: fedora-dist
|
|
artifacts:
|
|
expose_as: 'Get tarball here'
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
paths:
|
|
- "$TARBALL_ARTIFACT_PATH"
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG'
|