mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-11 20:44:32 -05:00
145 lines
5.4 KiB
YAML
145 lines
5.4 KiB
YAML
name: Electron Master
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
env:
|
|
CI: true
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v**
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
build:
|
|
# this is so the assets can be added to the release
|
|
permissions:
|
|
contents: write
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-22.04
|
|
- windows-latest
|
|
- macos-latest
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- if: ${{ startsWith(matrix.os, 'windows') }}
|
|
run: pip.exe install setuptools
|
|
- if: ${{ ! startsWith(matrix.os, 'windows') }}
|
|
run: |
|
|
mkdir .venv
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
python3 -m pip install setuptools
|
|
- if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install flatpak -y
|
|
sudo apt-get install flatpak-builder -y
|
|
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
sudo flatpak install org.freedesktop.Sdk/x86_64/23.08 -y
|
|
sudo flatpak install org.freedesktop.Platform/x86_64/23.08 -y
|
|
sudo flatpak install org.electronjs.Electron2.BaseApp/x86_64/23.08 -y
|
|
- name: Set up environment
|
|
uses: ./.github/actions/setup
|
|
- name: Build Electron for Mac
|
|
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
run: ./bin/package-electron
|
|
env:
|
|
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
|
CSC_LINK: ${{ secrets.CSC_LINK }}
|
|
APPLE_ID: ${{ secrets.APPLE_ID }}
|
|
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
|
- name: Build Electron
|
|
if: ${{ ! startsWith(matrix.os, 'macos') }}
|
|
run: ./bin/package-electron
|
|
- name: Upload Build
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: actual-electron-${{ matrix.os }}
|
|
path: |
|
|
packages/desktop-electron/dist/*.dmg
|
|
packages/desktop-electron/dist/*.exe
|
|
!packages/desktop-electron/dist/Actual-windows.exe
|
|
packages/desktop-electron/dist/*.AppImage
|
|
packages/desktop-electron/dist/*.flatpak
|
|
- name: Upload Windows Store Build
|
|
if: ${{ startsWith(matrix.os, 'windows') }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: actual-electron-${{ matrix.os }}-appx
|
|
path: |
|
|
packages/desktop-electron/dist/*.appx
|
|
- name: Process release version
|
|
id: process_version
|
|
run: |
|
|
echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
|
- name: Add to new release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
draft: true
|
|
body: |
|
|
:link: [View release notes](https://actualbudget.org/blog/release-${{ steps.process_version.outputs.version }})
|
|
|
|
## Desktop releases
|
|
Please note: Microsoft store updates can sometimes lag behind the main release by a couple of days while they verify the new version.
|
|
|
|
<a href="https://apps.microsoft.com/detail/9p2hmlhsdbrm?cid=Github+Releases&mode=direct">
|
|
<img src="https://get.microsoft.com/images/en-us%20dark.svg" width="200"/>
|
|
</a>
|
|
files: |
|
|
packages/desktop-electron/dist/*.dmg
|
|
packages/desktop-electron/dist/*.exe
|
|
!packages/desktop-electron/dist/Actual-windows.exe
|
|
packages/desktop-electron/dist/*.AppImage
|
|
packages/desktop-electron/dist/*.flatpak
|
|
|
|
publish-microsoft-store:
|
|
needs: build
|
|
runs-on: windows-latest
|
|
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
|
|
steps:
|
|
- name: Install StoreBroker
|
|
shell: powershell
|
|
run: |
|
|
Install-Module -Name StoreBroker -AcceptLicense -Force -Scope CurrentUser -Verbose
|
|
|
|
- name: Download Microsoft Store artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: actual-electron-windows-latest-appx
|
|
|
|
- name: Submit to Microsoft Store
|
|
shell: powershell
|
|
run: |
|
|
# Disable telemetry
|
|
$global:SBDisableTelemetry = $true
|
|
|
|
# Authenticate against the store
|
|
$pass = ConvertTo-SecureString -String '${{ secrets.MICROSOFT_STORE_CLIENT_SECRET }}' -AsPlainText -Force
|
|
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ${{ secrets.MICROSOFT_STORE_CLIENT_ID }},$pass
|
|
Set-StoreBrokerAuthentication -TenantId '${{ secrets.MICROSOFT_STORE_TENANT_ID }}' -Credential $cred
|
|
|
|
# Zip and create metadata files
|
|
$artifacts = Get-ChildItem -Path . -Filter *.appx | Select-Object -ExpandProperty FullName
|
|
New-StoreBrokerConfigFile -Path "$PWD/config.json" -AppId ${{ secrets.MICROSOFT_STORE_PRODUCT_ID }}
|
|
New-SubmissionPackage -ConfigPath "$PWD/config.json" -DisableAutoPackageNameFormatting -AppxPath $artifacts -OutPath "$PWD" -OutName submission
|
|
|
|
# Submit the app
|
|
# See https://github.com/microsoft/StoreBroker/blob/master/Documentation/USAGE.md#the-easy-way
|
|
Update-ApplicationSubmission `
|
|
-AppId ${{ secrets.MICROSOFT_STORE_PRODUCT_ID }} `
|
|
-SubmissionDataPath "submission.json" `
|
|
-PackagePath "submission.zip" `
|
|
-ReplacePackages `
|
|
-NoStatus `
|
|
-AutoCommit `
|
|
-Force
|