1- name : Shell - Build aarch64
1+ name : Shell Crates - Build, Package, and Publish for aarch64
22
33on :
44 workflow_dispatch :
3030 fail-fast : false
3131 matrix :
3232 include :
33- - name : Notification
34- package : mechanix-notification
35- - name : Launcher
36- package : mechanix-launcher
37- - name : Keyboard
38- package : mechanix-keyboard
33+ - name : Launcher Crate Build
34+ package : launcher
3935
4036 runs-on : ubicloud-standard-2-arm
4137 environment : pre-release
@@ -44,42 +40,58 @@ jobs:
4440 - name : Setup | Checkout
4541 uses : actions/checkout@v4
4642
47- - name : Install Rust 1.86.0
43+ - name : Install Rust 1.91.1
4844 uses : dtolnay/rust-toolchain@master
4945 with :
50- toolchain : 1.86.0
46+ toolchain : 1.91.1
5147
5248 - name : Install cargo-deb
5349 run : cargo install cargo-deb
5450
5551 - name : Install dependencies
5652 run : |
5753 sudo apt update
58- sudo apt install -y \
59- g++ \
60- pkg-config \
61- libx11-dev \
62- libudev-dev \
63- libxkbcommon-x11-0 \
64- libgles2-mesa-dev \
65- libgl1-mesa-dev \
66- libegl-dev \
67- libegl1-mesa-dev \
68- libvulkan-dev \
69- libwayland-dev \
70- libxkbcommon-dev \
71- libdbus-1-dev \
72- libpam0g-dev \
73- libclang-dev \
74- libpulse-dev \
75- libasound-dev \
76- python3-pip \
77- pipx \
78- jq \
79- curl \
80- librust-alsa-sys-dev \
81- libpulse-dev \
54+
55+ # List of packages
56+ packages=(
57+ g++
58+ pkg-config
59+ libx11-dev
60+ libudev-dev
61+ libxkbcommon-x11-0
62+ libgles2-mesa-dev
63+ libgl1-mesa-dev
64+ libegl-dev
65+ libegl1-mesa-dev
66+ libvulkan-dev
67+ libwayland-dev
68+ libxkbcommon-dev
69+ libdbus-1-dev
70+ libpam0g-dev
71+ libclang-dev
72+ libpulse-dev
73+ libasound-dev
74+ python3-pip
75+ pipx
76+ jq
77+ curl
78+ librust-alsa-sys-dev
8279 libasound2-dev
80+ libxkbfile-dev
81+ libxkbcommon-x11-dev
82+ wayland-protocols
83+ libxkbcommon-tools
84+ )
85+
86+ # Loop over packages and install only available ones
87+ for pkg in "${packages[@]}"; do
88+ if apt-cache show "$pkg" > /dev/null 2>&1; then
89+ echo "[INFO] Installing $pkg"
90+ sudo apt install -y "$pkg"
91+ else
92+ echo "[WARN] Package $pkg not found, skipping."
93+ fi
94+ done
8395
8496 # Pulp CLI setup
8597 - name : Setup | Pulp CLI
@@ -105,13 +117,13 @@ jobs:
105117 --base-url "$PULP_API_URL" \
106118 --overwrite
107119
108- - name : Build [ ${{ matrix.package }}]
120+ - name : Build ${{ matrix.package }}
109121 run : |
110122 cargo --config net.git-fetch-with-cli=true fetch
111123 cargo build --release --package ${{ matrix.package }}
112124 ls -la target/release
113125
114- - name : Package deb [ ${{ matrix.package }}]
126+ - name : Package deb ${{ matrix.package }}
115127 run : |
116128 sudo apt install -y fakeroot
117129 fakeroot cargo deb --no-build --package ${{ matrix.package }}
@@ -130,9 +142,9 @@ jobs:
130142 fakeroot dpkg-deb -R "$DEB_FILE" "$TMPDIR/pkg"
131143 fakeroot dpkg-deb -b "$TMPDIR/pkg" "$DEB_FILE"
132144
133- echo "[INFO] ✅ Repacked: $DEB_FILE"
145+ echo "[INFO] ✅ Repacked: $DEB_FILE"
134146
135- - name : Prepare artifacts [ ${{ matrix.package }}]
147+ - name : Prepare artifacts ${{ matrix.package }}
136148 run : |
137149 mkdir -p build
138150 cp target/release/${{ matrix.package }} ./build || true
@@ -144,18 +156,27 @@ jobs:
144156 name : ${{ matrix.package }}-artifacts
145157 path : ./build/*
146158
147- - name : Publish to Pulp [ ${{ matrix.package }}]
159+ - name : Publish to Pulp ${{ matrix.package }}
148160 run : |
149161 set -euo pipefail
150- DEB_FILE=$(ls target/debian/${{ matrix.package }}_*.deb | head -n1)
151- echo "[INFO] Uploading: $DEB_FILE"
162+
163+ DEB_FILE=$(find ./build -name "${{ matrix.package }}*.deb" -type f | head -n1)
164+
165+ if [ -z "$DEB_FILE" ]; then
166+ echo "[ERROR] No .deb file found for ${{ matrix.package }}"
167+ exit 1
168+ fi
169+
170+ echo "[INFO] 📦 Publishing: $DEB_FILE"
171+
152172 pulp deb content upload \
153173 --repository="${{ vars.MECHA_PULP_DEBS_REPOSITORY_NAME }}" \
154174 --file="$DEB_FILE"
155175
156176 echo "[INFO] Creating publication..."
157177 PUB_HREF=$(pulp deb publication create \
158178 --repository="${{ vars.MECHA_PULP_DEBS_REPOSITORY_NAME }}" \
179+ --signing-service=mecha-pkg-sign \
159180 | jq -r '.pulp_href')
160181
161182 echo "[INFO] Updating distribution..."
@@ -164,4 +185,4 @@ jobs:
164185 --base-path="${{ vars.MECHA_PULP_DEBS_REPOSITORY_NAME }}" \
165186 --repository="${{ vars.MECHA_PULP_DEBS_REPOSITORY_NAME }}"
166187
167- echo "[INFO] ✅ Package ${{ matrix.package }} published. "
188+ echo "[INFO] ✅ Package ${{ matrix.package }} published successfully! "
0 commit comments