Skip to content

Commit 2dc5759

Browse files
committed
Fix ci
1 parent 4da7eae commit 2dc5759

File tree

5 files changed

+56
-56
lines changed

5 files changed

+56
-56
lines changed

.github/workflows/build-flatpak.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ jobs:
66
tests:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/[email protected]
10-
- uses: cachix/install-nix-action@v15
11-
with:
12-
extra_nix_config: |
13-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
14-
- run: nix run .#build-flatpak build-flatpak build-aux/com.ranfdev.Geopard.Devel.json
9+
- uses: actions/checkout@master
10+
- run: sudo apt install flatpak-builder flatpak jq
11+
- run: bash ./build-aux/build-flatpak.sh build ./build-aux/com.ranfdev.Geopard.json
1512

build-aux/build-flatpak.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
4+
# Read data from manifest
5+
folder=$1
6+
manifest=$2;
7+
name=$(< "$manifest" jq -r '.["modules"] | last | .["name"]');
8+
appid=$(< "$manifest" jq -r '.["app-id"]');
9+
runtime=$(< "$manifest" jq -r '"runtime/" + .["runtime"] + "/x86_64/" + .["runtime-version"]');
10+
sdk=$(< "$manifest" jq -r '.["sdk"] + "/x86_64/" + .["runtime-version"]');
11+
sdk_extensions=$(< "$manifest" jq -r '.["sdk-extensions"] | .[]');
12+
13+
# Install flathub repo
14+
flatpak --verbose remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo;
15+
flatpak install --user -y "$runtime";
16+
flatpak install --user -y "$sdk";
17+
for ext in $sdk_extensions
18+
do
19+
echo "$ext";
20+
flatpak install --user -y "$ext";
21+
done
22+
23+
24+
# Prepare build folder
25+
if [ -n "$(ls -A "$folder")" ]; then
26+
echo error: directory "$folder" is not empty;
27+
exit 1;
28+
fi
29+
rm -rf "$folder";
30+
mkdir "$folder";
31+
32+
# Generate dist archive and the release manifest
33+
flatpak-builder --user "$folder"/build "$manifest" --build-only --stop-at="$name" --keep-build-dirs --force-clean;
34+
echo "meson dist --include-subprojects --no-tests" | flatpak-builder --user "$folder"/build "$manifest" --build-shell="$name" --keep-build-dirs --state-dir="$folder"/state;
35+
< "$manifest" jq '(.["modules"] | last | .["sources"] | last) |= {type: "archive", path: "archive.tar.xz"}' > build-flatpak-auto/manifest-archive.json;
36+
37+
# Build the app from the dist archive, using the corrected manifest
38+
cd "$folder"/;
39+
mv state/build/"$name"/_flatpak_build/meson-dist/*.tar.xz archive.tar.xz;
40+
flatpak-builder --user build --repo repo manifest-archive.json --force-clean;
41+
flatpak build-bundle ./repo "$appid".flatpak "$appid"
42+
43+
# Put all the artifacts in a single folder
44+
mkdir artifacts;
45+
mv "$appid".flatpak artifacts/;
46+
mv manifest-archive.json artifacts/"$appid".json;
47+
mv archive.tar.xz artifacts/"$appid".tar.xz;

build-aux/com.ranfdev.Geopard.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"runtime-version" : "42",
55
"sdk" : "org.gnome.Sdk",
66
"sdk-extensions" : [
7-
"org.freedesktop.Sdk.Extension.rust-stable"
7+
"org.freedesktop.Sdk.Extension.rust-stable//21.08"
88
],
99
"command" : "geopard",
1010
"tags" : [

flake.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nix/build-flatpak.nix

Lines changed: 2 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,6 @@
1-
{flatpak-builder, flatpak, stdenv, jq, writeShellApplication, writeTextFile}:
2-
let
3-
f = writeTextFile {
4-
name = "build-terminal.sh";
5-
text = ''
6-
meson dist --include-subprojects --no-tests;
7-
'';
8-
};
9-
in
1+
{flatpak-builder, flatpak, stdenv, jq, writeShellApplication}:
102
writeShellApplication {
113
name = "build-flatpak";
124
runtimeInputs = [flatpak-builder flatpak jq];
13-
text = ''
14-
# Read data from manifest
15-
folder=$1
16-
manifest=$2;
17-
name=$(< "$manifest" jq -r '.["modules"] | last | .["name"]');
18-
appid=$(< "$manifest" jq -r '.["app-id"]');
19-
runtime=$(< "$manifest" jq -r '"runtime/" + .["runtime"] + "/x86_64/" + .["runtime-version"]');
20-
21-
# Install flathub repo
22-
flatpak --verbose remote-add --system --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo;
23-
flatpak install --system -y "$runtime";
24-
25-
# Prepare build folder
26-
if [ -n "$(ls -A "$folder")" ]; then
27-
echo error: directory "$folder" is not empty;
28-
exit 1;
29-
fi
30-
rm -rf "$folder";
31-
mkdir "$folder";
32-
33-
# Generate dist archive and the release manifest
34-
flatpak-builder "$folder"/build "$manifest" --build-only --stop-at="$name" --keep-build-dirs --force-clean;
35-
< ${f} flatpak-builder "$folder"/build "$manifest" --build-shell="$name" --keep-build-dirs --state-dir="$folder"/state;
36-
< "$manifest" jq '(.["modules"] | last | .["sources"] | last) |= {type: "archive", path: "archive.tar.xz"}' > build-flatpak-auto/manifest-archive.json;
37-
38-
# Build the app from the dist archive, using the corrected manifest
39-
cd "$folder"/;
40-
mv state/build/"$name"/_flatpak_build/meson-dist/*.tar.xz archive.tar.xz;
41-
flatpak-builder build --repo repo manifest-archive.json --force-clean;
42-
flatpak build-bundle ./repo "$appid".flatpak "$appid"
43-
44-
# Put all the artifacts in a single folder
45-
mkdir artifacts;
46-
mv "$appid".flatpak artifacts/;
47-
mv manifest-archive.json artifacts/"$appid".json;
48-
mv archive.tar.xz artifacts/"$appid".tar.xz;
49-
'';
5+
text = builtins.readFile ../build-aux/build-flatpak.sh;
506
}

0 commit comments

Comments
 (0)