Files
federated-calendar/.gitlab-ci.yml
T

114 lines
2.9 KiB
YAML

include:
- project: 'gnome/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "build-flatpak"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
variables:
APP_ID: "org.gnome.Calendar.Devel"
BUNDLE: "org.gnome.Calendar.Devel.flatpak"
FLATPAK_MODULE: "gnome-calendar"
GIT_SUBMODULE_STRATEGY: 'normal'
MANIFEST_PATH: "build-aux/org.gnome.Calendar.json"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
TARBALL_ARTIFACT_PATH: ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
stages:
- check
- build
- analysis
- deploy
style-check-diff:
image: fedora:latest
stage: check
before_script:
- dnf install -y clang-tools-extra git python
script:
- .gitlab-ci/run-style-check-diff.sh
allow_failure: true
blueprint-format:
image: fedora:latest
stage: check
before_script:
- dnf install -y blueprint-compiler
- shopt -s globstar
script:
- blueprint-compiler format **/*.blp
build-flatpak:
extends: '.flatpak@x86_64'
stage: build
before_script: []
build-flatpak-aarch64:
extends: '.flatpak@aarch64'
stage: build
before_script: []
when: manual
nightly:
extends: '.publish_nightly'
needs: ['build-flatpak']
nightly-aarch64:
extends: '.publish_nightly'
needs: ['build-flatpak-aarch64']
when: manual
coverage:
stage: analysis
image: quay.io/gnome_infrastructure/gnome-build-meta:core-nightly
needs:
- job: build-flatpak
artifacts: false
script:
- .gitlab-ci/install-grcov.sh
- .gitlab-ci/build-with-coverage.sh
- .gitlab-ci/gen-coverage.sh
coverage: '/Coverage: \d+\.\d+/'
artifacts:
name: "gnome-calendar-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
expire_in: 2 days
when: always
reports:
coverage_report:
coverage_format: cobertura
path: public/coverage.xml
paths:
- "_build/meson-logs"
- public
static-scan:
stage: analysis
image: quay.io/gnome_infrastructure/gnome-build-meta:core-nightly
needs:
- job: build-flatpak
artifacts: false
script:
- .gitlab-ci/build-static-scan.sh
artifacts:
name: "gnome-calendar-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/meson-logs"
- public
pages:
stage: deploy
needs: [ coverage, static-scan ]
script:
- cp .gitlab-ci/landing-page.html public/index.html
artifacts:
paths:
- public
expire_in: 1 day
rules:
# Restrict to the main branch so not every branch tries to deploy the web site
- if: ($CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH)
# Alternatively, restrict it to the GNOME namespace to avoid every fork pushing a set of pages by default
# - if: ($CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME")