Flocon/.github/workflows/release.yml
Florent CHAMPIGNY a769be6a8c
Some checks are pending
docs / deploy (push) Waiting to run
fix: [CI] release on macos x64 (#453)
Co-authored-by: Florent Champigny <florent@bere.al>
2025-12-11 10:24:41 +01:00

180 lines
5.2 KiB
YAML

name: Build Desktop App then create a new release
on:
release:
types: [published]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-15 # runner Intel (x64)
arch: x64
jdk_url: "https://corretto.aws/downloads/latest/amazon-corretto-17-x64-macos-jdk.pkg"
- os: macos-latest
- os: ubuntu-latest
- os: windows-latest
steps:
- name: Checkout source
uses: actions/checkout@v6
- name: Set up temurin JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: '8.12'
# - name: Generate aboutlibraries
# working-directory: FloconDesktop
# run: ./gradlew composeApp:exportLibraryDefinitions -PaboutLibraries.outputFile=src/commonMain/composeResources/files/aboutlibraries.json
- name: Build with Gradle
working-directory: FloconDesktop
run: ./gradlew packageDistributionForCurrentOS packageUberJarForCurrentOS
env:
PROJECT_VERSION_NAME: ${{ github.ref_name }}
# Upload OS-specific artifacts
- name: Upload Linux artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: linux-deb
path: FloconDesktop/composeApp/build/compose/binaries/main/deb/*.deb
- name: Rename macOS x64 dmg
if: matrix.os == 'macos-15'
run: |
mv FloconDesktop/composeApp/build/compose/binaries/main/dmg/*.dmg FloconDesktop/composeApp/build/compose/binaries/main/dmg/macos-x64.dmg
- name: Rename macOS arm64 dmg
if: matrix.os == 'macos-latest'
run: |
mv FloconDesktop/composeApp/build/compose/binaries/main/dmg/*.dmg FloconDesktop/composeApp/build/compose/binaries/main/dmg/macos-arm64.dmg
- name: Upload macOS arm64 artifact
if: matrix.os == 'macos-latest'
uses: actions/upload-artifact@v4
with:
name: macos-arm64-dmg
path: FloconDesktop/composeApp/build/compose/binaries/main/dmg/*.dmg
- name: Upload macOS x64 artifact
if: matrix.os == 'macos-15'
uses: actions/upload-artifact@v4
with:
name: macos-x64-dmg
path: FloconDesktop/composeApp/build/compose/binaries/main/dmg/*.dmg
- name: Upload Windows artifact
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
with:
name: windows-msi
path: FloconDesktop/composeApp/build/compose/binaries/main/msi/*.msi
- name: Upload Linux Release Jar
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: linux-jar
path: FloconDesktop/composeApp/build/compose/jars/*.jar
- name: Upload macOS arm64 Release Jar
if: matrix.os == 'macos-latest'
uses: actions/upload-artifact@v4
with:
name: macos-arm64-jar
path: FloconDesktop/composeApp/build/compose/jars/*.jar
- name: Upload macOS x64 Release Jar
if: matrix.os == 'macos-15'
uses: actions/upload-artifact@v4
with:
name: macos-x64-jar
path: FloconDesktop/composeApp/build/compose/jars/*.jar
- name: Upload Windows Release Jar
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
with:
name: windows-jar
path: FloconDesktop/composeApp/build/compose/jars/*.jar
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout source
uses: actions/checkout@v4
# Download artifacts from all platforms
- name: Download Linux artifact
uses: actions/download-artifact@v4
with:
name: linux-deb
- name: Download macOS arm64 artifact
uses: actions/download-artifact@v4
with:
name: macos-arm64-dmg
- name: Download macOS x64 artifact
uses: actions/download-artifact@v4
with:
name: macos-x64-dmg
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: windows-msi
- name: Download Linux jar
uses: actions/download-artifact@v4
with:
name: linux-jar
- name: Download macOS arm64 jar
uses: actions/download-artifact@v4
with:
name: macos-arm64-jar
- name: Download macOS x64 jar
uses: actions/download-artifact@v4
with:
name: macos-x64-jar
- name: Download Windows jar
uses: actions/download-artifact@v4
with:
name: windows-jar
# List downloaded artifacts
- name: Check downloaded artifacts
run: ls -R
# Create GitHub Release
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
files: |
*.deb
*.dmg
*.msi
*.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}