Repository navigation
AppImage #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Manual AppImage distribution build for box-rpg-maker, auto-published as a Release. | |
| # | |
| # Trigger: workflow_dispatch only (Actions tab -> Run workflow). Never on | |
| # push. The Python-pure builder (python3 -m tools.build_appimage) computes | |
| # the stable year.month.commit-count tag, creates it at HEAD, verifies the | |
| # checkout is exactly at that tag, stages the frontend-only AppDir, and | |
| # converts it with a recent FUSE3-capable appimagetool (no libfuse2). | |
| # The publish step then pushes that tag and creates (or updates, idempotent | |
| # on re-runs) the GitHub Release with a generic title, notes from | |
| # tools/release_notes.py, and the attached AppImage. | |
| name: AppImage | |
| permissions: | |
| contents: write | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: "Stable tag to build (default: computed from git history)" | |
| required: false | |
| default: "" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out with full history for tags and version count | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python 3.14 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| - name: Install FUSE3 to run appimagetool and the artifact | |
| run: sudo apt-get update && sudo apt-get install -y fuse3 | |
| - name: Build the AppImage | |
| env: | |
| # Fresh runners carry no git identity and the builder creates an | |
| # annotated tag, so tagger identity comes from the environment. | |
| GIT_AUTHOR_NAME: ChrisTVH | |
| GIT_AUTHOR_EMAIL: cristoferherame@gmail.com | |
| GIT_COMMITTER_NAME: ChrisTVH | |
| GIT_COMMITTER_EMAIL: cristoferherame@gmail.com | |
| run: | | |
| if [ -n "${{ inputs.tag }}" ]; then | |
| python3 -m tools.build_appimage --yes --tag "${{ inputs.tag }}" | |
| else | |
| python3 -m tools.build_appimage --yes | |
| fi | |
| - name: Upload the artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: box-rpg-maker.appimage | |
| path: dist/box-rpg-maker.appimage | |
| - name: Upload the checksum | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: box-rpg-maker.appimage.sha256 | |
| path: dist/box-rpg-maker.appimage.sha256 | |
| - name: Publish the GitHub release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| TAG=$(git describe --tags --exact-match HEAD) | |
| git push origin "$TAG" | |
| python3 -m tools.release_notes "$TAG" > notes.md | |
| if gh release view "$TAG" >/dev/null 2>&1; then | |
| gh release upload "$TAG" dist/box-rpg-maker.appimage dist/box-rpg-maker.appimage.sha256 --clobber | |
| else | |
| gh release create "$TAG" dist/box-rpg-maker.appimage dist/box-rpg-maker.appimage.sha256 \ | |
| --title "box-rpg-maker $TAG" --notes-file notes.md | |
| fi |