include: - remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/3d80a75e1284935e69219bfa80bc6064c6786819/templates/alpine.yml' cache: paths: - _ccache/ variables: BUNDLE: 'epiphany-git.flatpak' MANIFEST_PATH: 'org.gnome.Epiphany.json' RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo' FLATPAK_MODULE: 'epiphany' APP_ID: 'org.gnome.Epiphany.Devel' ESLINT_LOG: "eslint-report.txt" FDO_UPSTREAM_REPO: GNOME/epiphany stages: - prepare - test # Use freedesktop-ci-templates for code style check and eslint. # Everything else uses flatpak-ci-initiative .alpine.container.common: variables: FDO_DISTRIBUTION_TAG: '2022-07-29.1' FDO_DISTRIBUTION_VERSION: 'latest' build.container.alpine@x86_64: extends: - '.fdo.container-build@alpine' - '.alpine.container.common' stage: 'prepare' variables: GIT_STRATEGY: none FDO_EXPIRES_AFTER: 8w FDO_DISTRIBUTION_PACKAGES: >- bash nodejs npm python3 uncrustify FDO_DISTRIBUTION_EXEC: >- npm install -g eslint check-code-style: extends: - '.fdo.distribution-image@alpine' - '.alpine.container.common' stage: 'test' needs: [ 'build.container.alpine@x86_64' ] interruptible: true script: - bash data/check-code-style artifacts: paths: - ${ESLINT_LOG} when: on_failure except: - gnome-* eslint: extends: - '.fdo.distribution-image@alpine' - '.alpine.container.common' stage: 'test' needs: [ 'build.container.alpine@x86_64' ] interruptible: true script: - eslint -o eslint-report.txt --no-color embed/web-process-extension/resources/js/ || { cat $ESLINT_LOG; false; } artifacts: paths: - ${ESLINT_LOG} when: on_failure except: - gnome-* .flatpak rules: rules: - if: $CI_COMMIT_BRANCH =~ "^gnome-*" variables: CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled -Dgsb_api_key=${GSB_API_KEY}' - if: $CI_COMMIT_BRANCH == "master" variables: CONFIG_OPTS: '-Dtech_preview=true -Dprofile=Devel -Dunit_tests=enabled -Dgsb_api_key=${GSB_API_KEY}' - if: $CI_COMMIT_BRANCH !~ "^gnome-*" && $CI_COMMIT_BRANCH != "master" variables: CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled -Dgsb_api_key=${GSB_API_KEY} --werror' flatpak: extends: - '.flatpak' - '.flatpak rules' needs: [] flatpak aarch64: extends: - '.flatpak@aarch64' - '.flatpak rules' needs: [] scanbuild: extends: '.flatpak' needs: [] variables: CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled' script: - flatpak-builder --user --disable-rofiles-fuse --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} - flatpak build flatpak_app bash -c "source /usr/lib/sdk/llvm14/enable.sh; meson --prefix=/app ${CONFIG_OPTS} _build; SCANBUILD=$(pwd)/.run-scan-build ninja -C _build scan-build" artifacts: when: on_failure paths: - _build/meson-logs/scanbuild nightly: extends: '.publish_nightly' stage: .post needs: ['flatpak'] nightly aarch64: extends: '.publish_nightly' stage: .post needs: ['flatpak aarch64'] # Canary is disabled indefinitely until a WebKit runtime built for GTK 4 is available. # #canary: # image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master' # stage: 'test' # interruptible: true # allow_failure: true # tags: # - flatpak # variables: # SDK_REPO: 'https://software.igalia.com/flatpak-refs/webkit-sdk.flatpakrepo' # BUNDLE: 'epiphany-canary.flatpak' # script: # # TODO: Switch to debug? 5GB downloads though. # - python3 generate-canary-manifest.py --release # - flatpak remote-add --user --if-not-exists webkit-sdk ${SDK_REPO} # - flatpak-builder --user --install-deps-from=webkit-sdk --disable-rofiles-fuse --repo=repo canary_flatpak_app org.gnome.Epiphany.Canary.json # - flatpak build-bundle repo ${BUNDLE} --runtime-repo=${SDK_REPO} org.gnome.Epiphany.Canary # - tar cf canary-repo.tar repo/ # - rm -rf canary-repo canary_flatpak_app org.gnome.Epiphany.Canary.json webkitgtk.zip # # artifacts: # name: 'Canary Flatpak artifacts' # expose_as: 'Get Canary Flatpak bundle here' # when: 'always' # paths: # - "${BUNDLE}" # - "canary-repo.tar" # expire_in: 14 days # cache: # - key: "$CI_JOB_NAME" # paths: # - '.flatpak-builder/downloads' # - '.flatpak-builder/git' # - key: "$CI_JOB_NAME" # paths: # - '.flatpak-builder/cache' # - '.flatpak-builder/ccache' # except: # - gnome-* # #canary nightly: # extends: '.publish_nightly' # allow_failure: true # stage: .post # dependencies: ['canary'] # before_script: # - mv canary-repo.tar repo.tar