mirror of
https://github.com/pepaskopec-blip/Graduately.git
synced 2026-10-27 15:14:35 +00:00
Publish builds to a branch instead of to releases.
Releases and version numbers are gone. CI now rebuilds all three platforms on every change to main and commits the packages to the `builds` branch, so what anyone downloads is the current state of the repository. The branch is rewritten from scratch each time rather than added to, so the repository keeps one copy of the packages instead of a ~70 MB set per commit. Without tags there is no version to compare, so a build carries the commit it was made from and the branch carries a VERSION file naming the same commit. The updater fetches those few bytes and treats any difference as being behind; commits are not ordered, and the branch only ever holds the current build. The installers fetch from the branch over raw.githubusercontent.com for the same reason. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
4566336b1b
commit
737e27deb0
10 changed files with 190 additions and 198 deletions
141
.github/workflows/release.yml
vendored
141
.github/workflows/release.yml
vendored
|
|
@ -1,141 +0,0 @@
|
|||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
name: Linux AppImage
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
build-essential pkg-config curl \
|
||||
libgtk-4-dev librsvg2-dev \
|
||||
desktop-file-utils \
|
||||
appstream
|
||||
|
||||
- name: Build AppImage
|
||||
env:
|
||||
VERSION: ${{ github.ref_name }}
|
||||
run: |
|
||||
chmod +x scripts/bundle-linux.sh
|
||||
./scripts/bundle-linux.sh
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: maturita-linux
|
||||
path: dist/maturita-linux-*.AppImage
|
||||
|
||||
windows:
|
||||
name: Windows zip
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: UCRT64
|
||||
update: true
|
||||
install: >-
|
||||
make
|
||||
zip
|
||||
mingw-w64-ucrt-x86_64-gcc
|
||||
mingw-w64-ucrt-x86_64-gtk4
|
||||
mingw-w64-ucrt-x86_64-pkg-config
|
||||
mingw-w64-ucrt-x86_64-make
|
||||
|
||||
- name: Build and bundle
|
||||
env:
|
||||
VERSION: ${{ github.ref_name }}
|
||||
run: |
|
||||
make bundle
|
||||
cd dist
|
||||
zip -qry ../maturita-windows-x64.zip .
|
||||
cd ..
|
||||
mkdir -p dist-out
|
||||
mv maturita-windows-x64.zip dist-out/
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: maturita-windows
|
||||
path: dist-out/maturita-windows-x64.zip
|
||||
|
||||
macos:
|
||||
name: macOS app
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew install gtk4 pkg-config
|
||||
|
||||
- name: Build .app zip
|
||||
env:
|
||||
VERSION: ${{ github.ref_name }}
|
||||
run: |
|
||||
chmod +x scripts/bundle-macos.sh
|
||||
./scripts/bundle-macos.sh
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: maturita-macos
|
||||
path: dist/maturita-macos-*.zip
|
||||
|
||||
publish:
|
||||
name: Publish GitHub Release
|
||||
needs: [linux, windows, macos]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: release-assets
|
||||
merge-multiple: true
|
||||
|
||||
# The installers carry no application: each downloads the newest release
|
||||
# when the user runs it. The macOS one is zipped because a release asset
|
||||
# loses its executable bit, which a .command needs to be double-clicked.
|
||||
- name: Collect installers
|
||||
run: |
|
||||
cp installers/maturita-installer-linux.sh release-assets/
|
||||
cp installers/maturita-installer-windows.cmd release-assets/
|
||||
chmod +x installers/maturita-installer-macos.command
|
||||
(cd installers && zip -q ../release-assets/maturita-installer-macos.zip \
|
||||
maturita-installer-macos.command)
|
||||
|
||||
- name: List assets
|
||||
run: find release-assets -type f -print
|
||||
|
||||
- name: Create release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
release-assets/maturita-linux-*.AppImage
|
||||
release-assets/maturita-windows-x64.zip
|
||||
release-assets/maturita-macos-*.zip
|
||||
release-assets/maturita-installer-macos.zip
|
||||
release-assets/maturita-installer-windows.cmd
|
||||
release-assets/maturita-installer-linux.sh
|
||||
generate_release_notes: true
|
||||
fail_on_unmatched_files: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
Loading…
Add table
Add a link
Reference in a new issue