Skip to content

Release

Release #30

Workflow file for this run

name: Release
on:
pull_request:
paths:
- .github/workflows/release.yml
- .github/actions/publish-artifacts/**
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
RUSTUP_MAX_RETRIES: 10
jobs:
desktop:
strategy:
matrix:
settings:
- host: macos-13
target: x86_64-apple-darwin
bundles: dmg,app
os: darwin
arch: x86_64
- host: macos-14
target: aarch64-apple-darwin
bundles: dmg,app
os: darwin
arch: aarch64
- host: windows-latest
target: x86_64-pc-windows-msvc
bundles: msi
os: windows
arch: x86_64
- host: ubuntu-22.04
target: x86_64-unknown-linux-gnu
bundles: deb
os: linux
arch: x86_64
name: Desktop (${{ matrix.settings.target }})
runs-on: ${{ matrix.settings.host }}
steps:
- name: (Linux) Maximize build space
if: ${{ runner.os == 'Linux' }}
uses: easimon/maximize-build-space@fc881a613ad2a34aca9c9624518214ebc21dfc0c
with:
swap-size-mb: 4096
root-reserve-mb: 6144
remove-dotnet: 'true'
remove-codeql: 'true'
remove-haskell: 'true'
remove-docker-images: 'true'
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- name: (Windows) Setup Target
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: |
New-Item -ItemType Directory -Force -Path C:\onelauncher_target
New-Item -Path target -ItemType Junction -Value C:\onelauncher_target
# - name: (macOS) - Download Apple key
# i f: ${ { runner.os == 'macOS' }}
# run: |
# mkdir -p ~/.appstoreconnect/private_keys/
# cd ~/.appstoreconnect/private_keys/
# echo ${ { secrets.APPLE_API_KEY_B64 }} >> AuthKey_${ { secrets.APPLE_API_KEY }}.p8.base64
# base64 --decode -i AuthKey_$ {{ secrets.APPLE_API_KEY }}.p8.base64 -o AuthKey_${ { secrets.APPLE_API_KEY }}.p8
# rm AuthKey_${ { secrets.APPLE_API_KEY }}.p8.base64
# - name: (macOS) - Install Apple key
# i f: ${ { runner.os == 'macOS' }}
# uses: apple-actions/import-codesign-certs@v2
# with:
# p12-file-base64: ${ { secrets.APPLE_CERTIFICATE }}
# p12-password: ${ { secrets.APPLE_CERTIFICATE_PASSWORD }}
- name: Setup System
uses: ./.github/actions/setup-system
# env:
# APPLE_SIGNING_IDENTITY: ${ { secrets.APPLE_SIGNING_IDENTITY }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.settings.target }}
- name: Setup Pnpm
uses: ./.github/actions/setup-pnpm
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: pnpm tauri build --ci -v --target ${{ matrix.settings.target }} --bundles ${{ matrix.settings.bundles }}
# env:
# TAURI_SIGNING_PRIVATE_KEY: $ {{ secrets.TAURI_PRIVATE_KEY }}
# TAURI_SIGNING_PRIVATE_KEY_PASSWORD: $ {{ secrets.TAURI_KEY_PASSWORD }}
# ENABLE_CODE_SIGNING: $ {{ secrets.APPLE_CERTIFICATE }}
# APPLE_CERTIFICATE: $ {{ secrets.APPLE_CERTIFICATE }}
# APPLE_CERTIFICATE_PASSWORD: $ {{ secrets.APPLE_CERTIFICATE_PASSWORD }}
# APPLE_SIGNING_IDENTITY: $ {{ secrets.APPLE_SIGNING_IDENTITY }}
# APPLE_PROVIDER_SHORT_NAME: $ {{ secrets.APPLE_PROVIDER_SHORT_NAME }}
# APPLE_API_ISSUER: $ {{ secrets.APPLE_API_ISSUER }}
# APPLE_API_KEY: $ {{ secrets.APPLE_API_KEY }}
# SENTRY_AUTH_TOKEN: $ {{ secrets.SENTRY_AUTH_TOKEN }}
- name: (Linux) Build Frontend
if: ${{ runner.os == 'Linux' }}
run: |
set -eux
XZ_OPT='-T0 -7' tar -cJf apps/frontend/dist.tar.xz -C apps/frontend/dist .
- name: Publish Artifacts
uses: ./.github/actions/publish-artifacts
with:
os: ${{ matrix.settings.os }}
arch: ${{ matrix.settings.arch }}
target: ${{ matrix.settings.target }}
profile: release
release:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
name: Create Release
needs: desktop
permissions:
contents: write
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
# - name: Create Relesae
# u