diff --git a/.github/actions/prepare_for_build/action.yml b/.github/actions/prepare_for_build/action.yml index 5595a94f..941a2d4c 100644 --- a/.github/actions/prepare_for_build/action.yml +++ b/.github/actions/prepare_for_build/action.yml @@ -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 diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 75835cdf..775dd371 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -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 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a52b0ae0..c0ec58ee 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -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: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 16ffee88..3c4fdbf3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 diff --git a/.gitignore b/.gitignore index d092be16..ee761004 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,7 @@ macos/LunaSea.app.zip /macos/fastlane/Preview.html # Keys & Service Accounts +keys/ android/key.jks android/key.properties diff --git a/package.json b/package.json index def8b37b..ed724cbf 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/pubspec.yaml b/pubspec.yaml index 1f450e3b..f81fff9a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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