This repository was archived by the owner on Nov 8, 2026. It is now read-only.
Repository navigation
75 lines (66 loc) · 2.69 KB
/
Copy pathmseries-image-studio.yml
File metadata and controls
75 lines (66 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# M-Series Image Studio: native Rust + Granite build, core and GTK interaction tests under Xvfb.
name: Image Studio app
on:
workflow_dispatch:
push:
branches: [dev, main]
paths:
- "rust/mseries-image-studio/**"
- "rust/Cargo.toml"
- "rust/Cargo.lock"
- "mseries/image-studio/**"
- ".github/workflows/mseries-image-studio.yml"
pull_request:
paths:
- "rust/mseries-image-studio/**"
- "rust/Cargo.toml"
- "rust/Cargo.lock"
- "mseries/image-studio/**"
- ".github/workflows/mseries-image-studio.yml"
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
app:
name: Image Studio app, render test (arm64)
runs-on: ubuntu-26.04-arm
timeout-minutes: 45
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/../mseries-image-studio-target
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/fast-apt
- name: Install build and test dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential pkg-config git cargo rustc \
libgtk-4-dev libgranite-7-dev xvfb xauth dbus-x11 desktop-file-utils
- uses: actions/cache@v6
with:
path: |
~/.cargo/registry
~/.cargo/git
${{ env.CARGO_TARGET_DIR }}
key: image-studio-${{ runner.arch }}-${{ hashFiles('rust/Cargo.lock') }}
restore-keys: image-studio-${{ runner.arch }}-
- name: Validate launcher metadata
run: |
desktop-file-validate rust/mseries-image-studio/data/org.elementary.mseries.ImageStudio.desktop
python3 -c 'import xml.etree.ElementTree as ET; ET.parse("rust/mseries-image-studio/data/org.elementary.mseries.ImageStudio.metainfo.xml")'
- name: Core tests, GTK interaction render test, and build
env:
MSERIES_IMAGE_STUDIO_SHOTS: ${{ runner.temp }}/image-studio-shots
run: |
cargo test --manifest-path rust/Cargo.toml -p mseries-image-studio --lib
dbus-run-session -- env -u WAYLAND_DISPLAY GDK_BACKEND=x11 GSETTINGS_BACKEND=memory GSK_RENDERER=cairo \
xvfb-run -a -s "-screen 0 1440x1000x24" cargo test --manifest-path rust/Cargo.toml -p mseries-image-studio --test render
cargo build --manifest-path rust/Cargo.toml -p mseries-image-studio
- uses: actions/upload-artifact@v7
if: always()
with:
name: image-studio-screenshots
path: ${{ runner.temp }}/image-studio-shots
if-no-files-found: ignore