You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.3 KiB
114 lines
3.3 KiB
stages: |
|
- test |
|
- review |
|
- deploy |
|
|
|
variables: |
|
BUNDLE: "org.gnome.FractalDevel.flatpak" |
|
MANIFEST_PATH: "flatpak/org.gnome.Fractal.json" |
|
MANIFEST_PATH: "flatpak/org.gnome.Fractal.json" |
|
FLATPAK_MODULE: "fractal" |
|
DBUS_ID: "org.gnome.FractalDevel" |
|
|
|
.flatpak_cache_template: &flatpak_cache |
|
cache: |
|
key: "flatpak" |
|
paths: |
|
- .flatpak-builder/cache/ |
|
- target/ |
|
- target_docs/ |
|
- target_test/ |
|
|
|
|
|
flatpak: |
|
image: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/rust_bundle:master" |
|
stage: "test" |
|
script: |
|
- flatpak-builder --stop-at=${FLATPAK_MODULE} --force-clean app ${MANIFEST_PATH} |
|
# Force regeneration of gresources regardless of artifacts chage |
|
- flatpak-builder --run app ${MANIFEST_PATH} glib-compile-resources --sourcedir=fractal-gtk/res/ fractal-gtk/res/resources.xml |
|
|
|
# Build the flatpak repo |
|
- flatpak-builder --run app ${MANIFEST_PATH} meson --prefix=/app -Dprofile=development _build |
|
- flatpak-builder --run app ${MANIFEST_PATH} ninja -C _build install |
|
|
|
# Run the tests |
|
- | |
|
xvfb-run -a -s "-screen 0 1024x768x24" \ |
|
flatpak-builder --run \ |
|
--env=CARGO_HOME="target/cargo-home" \ |
|
--env=CARGO_TARGET_DIR="target_test/" \ |
|
app ${MANIFEST_PATH} \ |
|
cargo test |
|
|
|
# Create a flatpak bundle |
|
- flatpak-builder --finish-only app ${MANIFEST_PATH} |
|
- flatpak build-export repo app |
|
- flatpak build-bundle repo ${BUNDLE} ${DBUS_ID} |
|
|
|
artifacts: |
|
paths: |
|
- "${BUNDLE}" |
|
expire_in: 2 days |
|
<<: *flatpak_cache |
|
|
|
|
|
review: |
|
stage: review |
|
dependencies: |
|
- flatpak |
|
script: |
|
- echo "Generating flatpak deployment" |
|
artifacts: |
|
paths: |
|
- "${BUNDLE}" |
|
expire_in: 30 days |
|
environment: |
|
name: "review/${CI_COMMIT_REF_NAME}" |
|
url: "https://gitlab.gnome.org/$CI_PROJECT_PATH/-/jobs/$CI_JOB_ID/artifacts/raw/${BUNDLE}" |
|
on_stop: stop_review |
|
except: |
|
- master@World/fractal |
|
- tags |
|
|
|
stop_review: |
|
stage: review |
|
script: |
|
- echo "Stopping flatpak deployment" |
|
when: manual |
|
environment: |
|
name: "review/${CI_COMMIT_REF_NAME}" |
|
action: stop |
|
except: |
|
- master@World/fractal |
|
- tags |
|
|
|
|
|
pages: |
|
image: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/rust_bundle:master" |
|
stage: deploy |
|
script: |
|
- flatpak-builder --stop-at=${FLATPAK_MODULE} --force-clean app ${MANIFEST_PATH} |
|
# Force regeneration of gresources regardless of artifacts chage |
|
- flatpak-builder --run app ${MANIFEST_PATH} glib-compile-resources --sourcedir=fractal-gtk/res/ fractal-gtk/res/resources.xml |
|
|
|
- | |
|
flatpak-builder --run \ |
|
--env=CARGO_HOME="target/cargo-home" \ |
|
app ${MANIFEST_PATH} \ |
|
cargo doc --no-deps |
|
|
|
- | |
|
flatpak-builder --run \ |
|
--env=CARGO_HOME="target/cargo-home" \ |
|
app ${MANIFEST_PATH} \ |
|
cargo rustdoc -p fractal-gtk -- --document-private-items |
|
|
|
- rm -rf public |
|
- mv target/doc/ public |
|
artifacts: |
|
paths: |
|
- public |
|
only: |
|
- master |
|
<<: *flatpak_cache
|
|
|