2022-07-07 16:57:42 +00:00
|
|
|
include: 'https://gitlab.gnome.org/Community/Purism/citemplates/-/raw/add_arch/flatpak/flatpak_ci_initiative.yml'
|
|
|
|
|
2021-02-04 19:25:29 +00:00
|
|
|
stages:
|
|
|
|
- check
|
|
|
|
- test
|
2022-04-05 10:17:07 +00:00
|
|
|
- build
|
2022-01-19 15:28:54 +00:00
|
|
|
- doc
|
2022-03-30 14:42:23 +00:00
|
|
|
- deploy
|
2021-02-04 19:25:29 +00:00
|
|
|
|
2022-04-05 10:17:07 +00:00
|
|
|
variables:
|
|
|
|
FLATPAK_MODULE: "fractal"
|
|
|
|
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
2022-04-13 17:36:36 +00:00
|
|
|
|
2022-07-07 16:57:42 +00:00
|
|
|
.vars_nightly:
|
2022-04-13 17:36:36 +00:00
|
|
|
variables:
|
|
|
|
MANIFEST_PATH: "build-aux/org.gnome.Fractal.Devel.json"
|
|
|
|
APP_ID: "org.gnome.Fractal.Devel"
|
|
|
|
|
2022-01-14 22:20:55 +00:00
|
|
|
# Configure and run code checks
|
|
|
|
# Exits and fails if an error is encountered
|
|
|
|
checks:
|
2022-01-20 08:08:11 +00:00
|
|
|
image: "rustlang/rust:nightly-slim"
|
2022-01-14 22:20:55 +00:00
|
|
|
stage: check
|
2021-02-04 19:25:29 +00:00
|
|
|
script:
|
2022-01-14 22:20:55 +00:00
|
|
|
- scripts/checks.sh --verbose --force-install
|
2021-04-24 15:08:53 +00:00
|
|
|
|
2022-04-05 10:17:07 +00:00
|
|
|
# Lint the code
|
2022-01-14 21:50:42 +00:00
|
|
|
cargo-clippy:
|
2022-07-07 16:57:42 +00:00
|
|
|
image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/x86_64/gnome:master'
|
2022-01-18 00:04:36 +00:00
|
|
|
stage: check
|
2022-07-07 16:57:42 +00:00
|
|
|
variables:
|
|
|
|
MANIFEST_PATH: "build-aux/org.gnome.Fractal.Hack.json"
|
|
|
|
APP_ID: "org.gnome.Fractal.Hack"
|
2022-01-14 21:50:42 +00:00
|
|
|
tags:
|
|
|
|
- flatpak
|
|
|
|
script:
|
|
|
|
- flatpak-builder --keep-build-dirs --user --disable-rofiles-fuse --stop-at=${FLATPAK_MODULE} flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
|
|
|
|
- echo "cargo clippy -- -D warnings" | flatpak-builder --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
|
|
|
|
|
2022-04-08 15:20:19 +00:00
|
|
|
build-x86_64:
|
2022-04-13 17:36:36 +00:00
|
|
|
extends:
|
2022-07-07 16:57:42 +00:00
|
|
|
- .flatpak
|
|
|
|
- .vars_nightly
|
2022-04-08 15:20:19 +00:00
|
|
|
stage: build
|
|
|
|
variables:
|
2022-04-13 17:36:36 +00:00
|
|
|
BUNDLE: "fractal-devel-x86_64.flatpak"
|
2022-07-07 16:57:42 +00:00
|
|
|
rules:
|
|
|
|
- if: $CI_COMMIT_BRANCH != "main"
|
|
|
|
variables:
|
|
|
|
MANIFEST_PATH: "build-aux/org.gnome.Fractal.Hack.json"
|
|
|
|
APP_ID: "org.gnome.Fractal.Hack"
|
|
|
|
BUNDLE: "fractal-hack-x86_64.flatpak"
|
|
|
|
|
2022-04-08 15:20:19 +00:00
|
|
|
build-aarch64:
|
2022-04-13 17:36:36 +00:00
|
|
|
extends:
|
2022-07-07 16:57:42 +00:00
|
|
|
- .flatpak
|
|
|
|
- .vars_nightly
|
2022-04-05 10:17:07 +00:00
|
|
|
stage: build
|
|
|
|
variables:
|
2022-04-13 17:36:36 +00:00
|
|
|
BUNDLE: "fractal-devel-aarch64.flatpak"
|
2022-07-07 16:57:42 +00:00
|
|
|
rules:
|
|
|
|
- if: $CI_COMMIT_BRANCH != "main"
|
|
|
|
when: manual
|
2022-04-05 10:17:07 +00:00
|
|
|
|
|
|
|
# Build the docs
|
|
|
|
# Only on main
|
2021-04-24 15:08:53 +00:00
|
|
|
pages:
|
2022-07-07 16:57:42 +00:00
|
|
|
extends: .vars_nightly
|
|
|
|
image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/x86_64/gnome:master'
|
2022-04-05 10:17:07 +00:00
|
|
|
stage: doc
|
|
|
|
tags:
|
|
|
|
- flatpak
|
2021-04-24 15:08:53 +00:00
|
|
|
script:
|
2022-05-12 11:13:37 +00:00
|
|
|
- flatpak install --user --noninteractive org.freedesktop.Sdk.Extension.rust-nightly//21.08
|
|
|
|
- sed -i 's|rust-stable|rust-nightly|g' ${MANIFEST_PATH}
|
2022-01-19 15:28:54 +00:00
|
|
|
- flatpak-builder --keep-build-dirs --user --disable-rofiles-fuse --stop-at=${FLATPAK_MODULE} flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
|
|
|
|
- echo "ninja src/doc" | flatpak-builder --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
|
|
|
|
- mv .flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/src/doc public
|
|
|
|
- chmod -R a=rwx public
|
2021-04-24 15:08:53 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2022-01-19 15:28:54 +00:00
|
|
|
- 'public'
|
2021-04-24 15:08:53 +00:00
|
|
|
only:
|
|
|
|
refs:
|
2022-03-31 09:58:32 +00:00
|
|
|
- main
|
2022-03-29 08:56:46 +00:00
|
|
|
|
2022-04-05 10:17:07 +00:00
|
|
|
# Publish the nightly version
|
|
|
|
# Only on main
|
2022-04-08 15:20:19 +00:00
|
|
|
publish_nightly-x86_64:
|
2022-07-07 16:57:42 +00:00
|
|
|
extends: .publish_nightly
|
2022-04-08 15:20:19 +00:00
|
|
|
dependencies: ['build-x86_64']
|
|
|
|
needs: ['build-x86_64']
|
|
|
|
publish_nightly-aarch64:
|
2022-07-07 16:57:42 +00:00
|
|
|
extends: .publish_nightly
|
2022-04-08 15:20:19 +00:00
|
|
|
dependencies: ['build-aarch64']
|
|
|
|
needs: ['build-aarch64']
|