fractal/.gitlab-ci.yml
Jordan Petridis 190bcf240d
CI: Give up on fancy artifact name
While the artifact has the correct name, the review url is messed up
and the env variable is never resolved.

Previously urls look like so:
"/artifacts/raw/org.gnome.Fractal.${CI_COMMIT_SHA}.flatpak"

I am tired of fighting yaml to get this to work.
2018-08-26 17:32:55 +03:00

114 lines
3.3 KiB
YAML

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