Skip to content

Commit 5176983

Browse files
committed
feat(packaging): add Snap support and refactor CI workflows
- Add Snap packaging with snapcraft.yaml for amd64 and arm64 - Add build, verify, and publish workflows for Snap Store - Rename build workflow to build-flatpak for clarity - Update verify-flatpak workflow reference - Update README screenshot paths to branding folder
1 parent 2a7895c commit 5176983

10 files changed

Lines changed: 174 additions & 7 deletions

File tree

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
name: Build and release
1+
name: Build Flatpak
22

33
on:
44
push:
55
tags:
66
- '*.*.*'
7+
workflow_dispatch:
78

89
jobs:
910
generate-manifest:

.github/workflows/build-snap.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Build Snap
2+
3+
on:
4+
push:
5+
tags:
6+
- '*.*.*'
7+
workflow_dispatch:
8+
9+
jobs:
10+
build:
11+
strategy:
12+
matrix:
13+
include:
14+
- arch: amd64
15+
runner: ubuntu-latest
16+
- arch: arm64
17+
runner: ubuntu-24.04-arm
18+
runs-on: ${{ matrix.runner }}
19+
20+
steps:
21+
- uses: actions/checkout@v6
22+
23+
- name: Build snap
24+
uses: snapcore/action-build@v1
25+
id: build
26+
27+
- name: Upload snap artifact
28+
uses: actions/upload-artifact@v6
29+
with:
30+
name: snap-${{ matrix.arch }}
31+
path: ${{ steps.build.outputs.snap }}

.github/workflows/publish-snap.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Publish Snap
2+
3+
on:
4+
workflow_run:
5+
workflows: ["Verify Snap"]
6+
types:
7+
- completed
8+
branches:
9+
- main
10+
workflow_dispatch:
11+
12+
jobs:
13+
publish:
14+
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
15+
strategy:
16+
matrix:
17+
arch: [amd64, arm64]
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- name: Download snap artifact
22+
uses: actions/download-artifact@v7
23+
with:
24+
name: snap-${{ matrix.arch }}
25+
run-id: ${{ github.event.workflow_run.id }}
26+
github-token: ${{ secrets.GITHUB_TOKEN }}
27+
28+
- name: Publish to Snap Store
29+
uses: snapcore/action-publish@v1
30+
env:
31+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
32+
with:
33+
snap: astrogods_*.snap
34+
release: stable

.github/workflows/update-flathub.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ on:
77
- completed
88
branches:
99
- main
10+
workflow_dispatch:
1011

1112
jobs:
1213
update-flathub:
13-
if: github.event.workflow_run.conclusion == 'success'
14+
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
1415
runs-on: ubuntu-latest
1516
permissions:
1617
contents: read

.github/workflows/verify-flatpak.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Verify Flatpak
22

33
on:
44
workflow_run:
5-
workflows: ["Build and release"]
5+
workflows: ["Build Flatpak"]
66
types:
77
- completed
88
workflow_dispatch:

.github/workflows/verify-snap.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Verify Snap
2+
3+
on:
4+
workflow_run:
5+
workflows: ["Build Snap"]
6+
types:
7+
- completed
8+
workflow_dispatch:
9+
10+
jobs:
11+
verify-snap:
12+
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
13+
strategy:
14+
matrix:
15+
include:
16+
- arch: amd64
17+
runner: ubuntu-latest
18+
- arch: arm64
19+
runner: ubuntu-24.04-arm
20+
runs-on: ${{ matrix.runner }}
21+
22+
steps:
23+
- uses: actions/checkout@v6
24+
25+
- name: Download snap artifact
26+
uses: actions/download-artifact@v7
27+
with:
28+
name: snap-${{ matrix.arch }}
29+
run-id: ${{ github.event.workflow_run.id }}
30+
github-token: ${{ secrets.GITHUB_TOKEN }}
31+
32+
- name: Install review-tools
33+
run: sudo snap install review-tools
34+
35+
- name: Review snap
36+
run: snap-review astrogods_*.snap
37+
38+
- name: Install and test snap
39+
run: |
40+
sudo snap install --dangerous astrogods_*.snap
41+
snap list astrogods

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ AstroGods is a modern, beautifully designed Astrology app focused on self-knowle
77
https://github.com/user-attachments/assets/27aaa5fc-46b9-4fa5-90dc-c4479c725b5e
88

99
<p align="center">
10-
<img src="screenshots/1000x700/homepage_dark.png" width="45%" alt="Homepage" />
11-
<img src="screenshots/1000x700/birth_chart_dark.png" width="45%" alt="Birth chart" />
10+
<img src="branding/screenshots/2446x1380/home_dark_en.png" width="45%" alt="Homepage" />
11+
<img src="branding/screenshots/2446x1380/birth_chart_reading_dark_en.png" width="45%" alt="Birth Chart Reading" />
1212
</p>
1313
<p align="center">
14-
<img src="screenshots/1000x700/book_of_caverns_dark.png" width="45%" alt="Synastry" />
15-
<img src="screenshots/1000x700/forecast_dark.png" width="45%" alt="Forecast" />
14+
<img src="branding/screenshots/2446x1380/birth_chart_dark_en.png" width="45%" alt="Birth Chart" />
15+
<img src="branding/screenshots/2446x1380/settings_dark_en.png" width="45%" alt="Settings" />
1616
</p>
1717

1818
## Installation

snap/gui/astrogods.desktop

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Desktop Entry]
2+
Name=AstroGods
3+
GenericName=Astrology App
4+
Comment=Birth chart readings, synastry, and transits based on Egyptian astrology
5+
Comment[it]=Tema natale, sinastria e transiti basati sull'astrologia egizia
6+
Exec=astrogods
7+
Icon=${SNAP}/meta/gui/astrogods.png
8+
Terminal=false
9+
Type=Application
10+
Categories=Education;
11+
Keywords=astrology;horoscope;birth chart;zodiac;
12+
Keywords[it]=astrologia;oroscopo;tema natale;zodiaco;
13+
StartupWMClass=astrogods

snap/gui/astrogods.png

66.6 KB
Loading

snap/snapcraft.yaml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: astrogods
2+
title: AstroGods
3+
adopt-info: astrogods
4+
summary: In-depth Astrology readings
5+
description: |
6+
AstroGods starts from the position of the planets at the moment of your birth
7+
to offer you a portrait of who you are: your way of loving, thinking, acting.
8+
You can explore compatibility with another person or understand what energies
9+
characterize a period of your life.
10+
11+
Here, Astrology is taken seriously. The astronomical calculations are the most
12+
precise available, the methodology adheres to the original Egyptian tradition,
13+
the interpretations are in-depth. No generic horoscopes: each reading goes
14+
into the detail of your unique configuration.
15+
16+
license: AGPL-3.0-only
17+
icon: snap/gui/astrogods.png
18+
website: https://astrogods.it
19+
source-code: https://github.com/arcangelo7/astrogods-app
20+
issues: https://github.com/arcangelo7/astrogods-app/issues
21+
contact: contact@astrogods.it
22+
23+
confinement: strict
24+
base: core24
25+
grade: stable
26+
27+
platforms:
28+
amd64:
29+
arm64:
30+
31+
apps:
32+
astrogods:
33+
command: astrogods
34+
extensions: [gnome]
35+
plugs:
36+
- network
37+
- network-status
38+
39+
parts:
40+
astrogods:
41+
source: .
42+
plugin: flutter
43+
flutter-target: lib/main.dart
44+
override-pull: |
45+
craftctl default
46+
craftctl set version=$(grep '^version:' pubspec.yaml | sed 's/version: //' | sed 's/+.*//')

0 commit comments

Comments
 (0)