chore(ci): build and publish signed MSIX installer for Windows

This commit is contained in:
Jagandeep Brar
2022-04-07 09:46:14 -04:00
parent 3442b96858
commit ff64d8c690
7 changed files with 58 additions and 10 deletions

View File

@@ -29,6 +29,10 @@ inputs:
description: 'App Store Connect API Key'
required: false
default: ''
code-signing-certificate:
description: 'Code Signing Certificate'
required: false
default: ''
google-play-key:
description: 'Google Play Store API Key'
required: false
@@ -98,6 +102,7 @@ runs:
shell: bash
run: |
echo ${{ inputs.appstore-connect-key }} | base64 --decode > keys/appstore.p8
echo ${{ inputs.code-signing-certificate }} | base64 --decode > keys/codesigning.pfx
echo ${{ inputs.google-play-key }} | base64 --decode > keys/googleplay.json
echo ${{ inputs.android-key-jks }} | base64 --decode > android/key.jks
echo ${{ inputs.android-key-properties }} | base64 --decode > android/key.properties

View File

@@ -2,6 +2,15 @@ name: 'Build Windows'
on:
workflow_call:
secrets:
CODE_SIGNING_CERTIFICATE:
required: true
CODE_SIGNING_PASSWORD:
required: true
CODE_SIGNING_PUBLISHER:
required: true
CODE_SIGNING_PUBLISHER_NAME:
required: true
jobs:
build-app-package:
@@ -24,3 +33,28 @@ jobs:
with:
name: windows-app-package
path: ${{ github.workspace }}/output
build-msix-installer:
name: MSIX Installer
runs-on: windows-latest
steps:
- name: Setup Environment
uses: JagandeepBrar/LunaSea/.github/actions/prepare_for_build@master
with:
platform: windows
code-signing-certificate: ${{ secrets.CODE_SIGNING_CERTIFICATE }}
- name: Build LunaSea
run: |
flutter pub run msix:create `
--certificate-password=${{ secrets.CODE_SIGNING_PASSWORD }} `
--certificate-path=${{ github.workspace }}/keys/codesigning.pfx `
--output-path=${{ github.workspace }}/output `
--publisher=${{ secrets.CODE_SIGNING_PUBLISHER }} `
--publisher-display-name=${{ secrets.CODE_SIGNING_PUBLISHER_NAME }}
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: windows-msix-installer
path: ${{ github.workspace }}/output

View File

@@ -248,6 +248,12 @@ jobs:
name: windows-app-package
path: ${{ github.workspace }}/output
- name: Download Windows MSIX Installer
uses: actions/download-artifact@v3
with:
name: windows-msix-installer
path: ${{ github.workspace }}/output
- name: Upload to S3 Bucket
uses: jakejarvis/s3-sync-action@v0.5.1
with:

View File

@@ -102,6 +102,11 @@ jobs:
name: Build Windows
needs: [ prepare, validate ]
uses: JagandeepBrar/LunaSea/.github/workflows/build_windows.yml@master
secrets:
CODE_SIGNING_CERTIFICATE: ${{ secrets.CODE_SIGNING_CERTIFICATE }}
CODE_SIGNING_PASSWORD: ${{ secrets.CODE_SIGNING_PASSWORD }}
CODE_SIGNING_PUBLISHER: ${{ secrets.CODE_SIGNING_PUBLISHER }}
CODE_SIGNING_PUBLISHER_NAME: ${{ secrets.CODE_SIGNING_PUBLISHER_NAME }}
build-web:
name: Build Web

1
.gitignore vendored
View File

@@ -59,6 +59,7 @@ macos/LunaSea.app.zip
/macos/fastlane/Preview.html
# Keys & Service Accounts
keys/
android/key.jks
android/key.properties

View File

@@ -7,10 +7,8 @@
"build:android": "flutter clean && flutter build apk --bundle-sksl-path shaders/android_sksl.json --release",
"build:ios": "flutter clean && flutter build ipa --bundle-sksl-path shaders/ios_sksl.json --release",
"build:linux": "flutter clean && flutter build linux --release",
"build:linux:snap": "flutter clean && snapcraft --use-lxd",
"build:macos": "flutter clean && flutter build macos --release",
"build:windows": "flutter clean && flutter build windows --release",
"build:windows:msix": "flutter clean && flutter pub get && flutter pub run msix:create",
"build:web": "flutter clean && flutter build web --web-renderer canvaskit --release",
"cocoapods:clear_cache": "rm -rf ~/Library/Caches/CocoaPods && rm -rf ~/Library/Developer/Xcode/DerivedData/*",
"cocoapods:nuke": "npm run cocoapods:nuke:ios && npm run cocoapods:nuke:macos",

View File

@@ -111,14 +111,13 @@ flutter_native_splash:
color: "#32323E"
msix_config:
display_name: LunaSea
publisher_display_name: Jagandeep Brar
identity_name: app.lunasea.lunasea
capabilities: internetClientServer,privateNetworkClientServer
logo_path: assets\icon\icon_windows.png
architecture: x64
output_name: lunasea-windows-amd64
execution_alias: lunasea
install_certificate: false
capabilities: internetClientServer,privateNetworkClientServer
display_name: LunaSea
enable_at_startup: false
execution_alias: lunasea
identity_name: app.lunasea.lunasea
install_certificate: false
logo_path: assets\icon\icon_windows.png
output_name: lunasea-windows-amd64
store: false