Skip to content

Commit fc5e236

Browse files
authored
Add release derivations (#30)
* add bundle derivations * add ci job
1 parent 4c49df4 commit fc5e236

File tree

4 files changed

+94
-2
lines changed

4 files changed

+94
-2
lines changed

.github/workflows/appimage.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: AppImage Build & Release
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
build-appimage:
11+
strategy:
12+
matrix:
13+
include:
14+
- arch: x86_64-linux
15+
runner: ubuntu-latest
16+
- arch: aarch64-linux
17+
runner: ubuntu-24.04-arm
18+
runs-on: ${{ matrix.runner }}
19+
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: cachix/install-nix-action@v27
24+
with:
25+
extra_nix_config: |
26+
experimental-features = nix-command flakes
27+
28+
- name: Build cli-appimage
29+
run: nix build .#cli-appimage
30+
31+
- name: Rename AppImage with architecture
32+
run: |
33+
arch="${{ matrix.arch }}"
34+
arch_short="${arch%%-*}"
35+
src=$(find result/ -name '*.AppImage' -print -quit)
36+
cp "$src" "lgpm-${arch_short}.AppImage"
37+
38+
- uses: actions/upload-artifact@v4
39+
with:
40+
name: appimage-${{ matrix.arch }}
41+
path: lgpm-*.AppImage
42+
43+
release:
44+
if: github.event_name == 'push'
45+
needs: build-appimage
46+
runs-on: ubuntu-latest
47+
permissions:
48+
contents: write
49+
50+
steps:
51+
- uses: actions/download-artifact@v4
52+
with:
53+
name: appimage-x86_64-linux
54+
path: artifacts/
55+
56+
- uses: actions/download-artifact@v4
57+
with:
58+
name: appimage-aarch64-linux
59+
path: artifacts/
60+
61+
- name: Generate tag
62+
id: tag
63+
run: echo "tag=pre-release-${GITHUB_SHA::7}-${GITHUB_RUN_NUMBER}" >> "$GITHUB_OUTPUT"
64+
65+
- uses: softprops/action-gh-release@v2
66+
with:
67+
tag_name: ${{ steps.tag.outputs.tag }}
68+
name: Pre-release ${{ steps.tag.outputs.tag }}
69+
prerelease: true
70+
files: artifacts/*.AppImage

assets/lgpm.desktop

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=lgpm
4+
Exec=lgpm
5+
Icon=lgpm
6+
Terminal=true
7+
Categories=Utility;

assets/lgpm.png

69 Bytes
Loading

flake.nix

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,24 @@
77
logos-cpp-sdk.url = "github:logos-co/logos-cpp-sdk";
88
logos-liblogos.url = "github:logos-co/logos-liblogos";
99
logos-package.url = "github:logos-co/logos-package";
10+
nix-bundle-dir.url = "github:logos-co/nix-bundle-dir";
11+
nix-bundle-appimage.url = "github:logos-co/nix-bundle-appimage";
1012
};
1113

12-
outputs = { self, nixpkgs, logos-cpp-sdk, logos-liblogos, logos-package }:
14+
outputs = { self, nixpkgs, logos-cpp-sdk, logos-liblogos, logos-package, nix-bundle-dir, nix-bundle-appimage }:
1315
let
1416
systems = [ "aarch64-darwin" "x86_64-darwin" "aarch64-linux" "x86_64-linux" ];
1517
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f {
18+
inherit system;
1619
pkgs = import nixpkgs { inherit system; };
1720
logosSdk = logos-cpp-sdk.packages.${system}.default;
1821
logosLiblogos = logos-liblogos.packages.${system}.default;
1922
logosPackageLib = logos-package.packages.${system}.lib;
23+
dirBundler = nix-bundle-dir.bundlers.${system}.qtApp;
2024
});
2125
in
2226
{
23-
packages = forAllSystems ({ pkgs, logosSdk, logosLiblogos, logosPackageLib }:
27+
packages = forAllSystems ({ pkgs, system, logosSdk, logosLiblogos, logosPackageLib, dirBundler }:
2428
let
2529
# Common configuration
2630
common = import ./nix/default.nix { inherit pkgs logosSdk logosLiblogos logosPackageLib; };
@@ -49,6 +53,17 @@
4953
lib = lib;
5054
cli = cli;
5155

56+
# Bundle outputs
57+
cli-bundle-dir = dirBundler cli;
58+
} // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux {
59+
cli-appimage = nix-bundle-appimage.lib.${system}.mkAppImage {
60+
drv = cli;
61+
name = "lgpm";
62+
bundle = dirBundler cli;
63+
desktopFile = ./assets/lgpm.desktop;
64+
icon = ./assets/lgpm.png;
65+
};
66+
} // {
5267
# Default package (combined)
5368
default = combined;
5469
}

0 commit comments

Comments
 (0)