Add Android/iOS artifacts to release #64
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy_tauri | |
on: | |
push: | |
branches: | |
- release | |
workflow_dispatch: | |
# This workflow will trigger on each push to the `release` branch to create or update a GitHub release, build your app, and upload the artifacts to the release. | |
env: | |
APP_VERSION: v0.0.1-alpha.1 | |
APPLE_DEVELOPMENT_TEAM: ${{ secrets.APPLE_TEAM_ID }} | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
NODE_OPTIONS: --max-old-space-size=4096 | |
NUXT_PUBLIC_CDN_URL: ${{ secrets.VITE_APP_CDN_URL }} | |
NUXT_PUBLIC_DISCORD_INVITE_LINK: ${{ secrets.VITE_DISCORD_INVITE_LINK }} | |
NUXT_PUBLIC_FATHOM_EVENT_ACCOUNT_REGISTRATION: ${{ secrets.VUE_APP_FATHOM_GOAL_ACCOUNT_REGISTRATION }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_CONTINUE_WITH_PRO: ${{ secrets.VUE_APP_FATHOM_EVENT_CTA_CONTINUE_WITH_PRO }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_MODAL_UPGRADE: ${{ secrets.VITE_FATHOM_EVENT_CTA_MODAL_UPGRADE }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_OPEN_APP: ${{ secrets.VITE_FATHOM_EVENT_CTA_OPEN_APP }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_SAVE_DOCS: ${{ secrets.VUE_APP_FATHOM_GOAL_CTA_SYNC_DOCS }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_SETTINGS_UPGRADE: ${{ secrets.VITE_FATHOM_EVENT_CTA_SETTINGS_UPGRADE }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_SIGN_UP_NOW: ${{ secrets.VITE_FATHOM_EVENT_CTA_SIGN_UP_NOW }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_TRY_IT_OUT: ${{ secrets.VITE_FATHOM_EVENT_CTA_TRY_IT_OUT }} | |
NUXT_PUBLIC_FATHOM_EVENT_CTA_UPGRADE_TO_PRO: ${{ secrets.VUE_APP_FATHOM_EVENT_CTA_UPGRADE_TO_PRO }} | |
NUXT_PUBLIC_FATHOM_SITE_ID: ${{ secrets.VUE_APP_FATHOM_SITE_ID }} | |
NUXT_PUBLIC_FATHOM_SITE_URL: ${{ secrets.VUE_APP_FATHOM_SITE_URL }} | |
NUXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.VUE_APP_FIREBASE_API_KEY }} | |
NUXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.VUE_APP_FIREBASE_APP_ID }} | |
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.VUE_APP_FIREBASE_AUTH_DOMAIN }} | |
NUXT_PUBLIC_FIREBASE_DATABASE_URL: ${{ secrets.VUE_APP_FIREBASE_DATABASE_URL }} | |
NUXT_PUBLIC_FIREBASE_DISABLED: | |
NUXT_PUBLIC_FIREBASE_LOG_LEVEL: ${{ secrets.VITE_FIREBASE_LOG_LEVEL }} | |
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VUE_APP_FIREBASE_MESSAGING_SENDER_ID }} | |
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.VUE_APP_FIREBASE_PROJECT_ID }} | |
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.VUE_APP_FIREBASE_STORAGE_BUCKET }} | |
NUXT_PUBLIC_LINK_FEEDBACK: ${{ secrets.LINK_FEEDBACK }} | |
NUXT_PUBLIC_STRIPE_MONTHLY_PRICE: ${{ secrets.VUE_APP_STRIPE_MONTHLY_PRICE }} | |
TAURI: 1 | |
TAURI_DESKTOP: 1 | |
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: | |
jobs: | |
build-desktop-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install-rust | |
- uses: ./.github/actions/install-tauri | |
- uses: ./.github/actions/install-xcode | |
- uses: ./.github/actions/install-node | |
- name: Build Web app | |
run: | | |
pnpm build | |
- name: Build Linux app | |
run: | | |
pnpm tauri build --verbose | |
- name: Rename build artifacts | |
run: | | |
mv ./src-tauri/target/release/bundle/deb/*.deb ./octo-${{ env.APP_VERSION }}-amd64.deb | |
mv ./src-tauri/target/release/bundle/deb/*.deb.sig ./octo-${{ env.APP_VERSION }}-amd64.deb.sig | |
mv ./src-tauri/target/release/bundle/rpm/*.rpm ./octo-${{ env.APP_VERSION }}-x64.rpm | |
mv ./src-tauri/target/release/bundle/appimage/*.AppImage ./octo-${{ env.APP_VERSION }}-amd64.AppImage | |
mv ./src-tauri/target/release/bundle/appimage/*.AppImage.sig ./octo-${{ env.APP_VERSION }}-amd64.AppImage.sig | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: true | |
files: | | |
./octo-${{ env.APP_VERSION }}-amd64.deb | |
./octo-${{ env.APP_VERSION }}-amd64.deb.sig | |
./octo-${{ env.APP_VERSION }}-x64.rpm | |
./octo-${{ env.APP_VERSION }}-amd64.AppImage | |
./octo-${{ env.APP_VERSION }}-amd64.AppImage.sig | |
make_latest: true | |
name: App ${{ env.APP_VERSION }} | |
tag_name: app-${{ env.APP_VERSION }} | |
target_commitish: ${{ github.sha }} | |
build-desktop-macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Arm based macs (M1 and above). | |
- bundle-id: aarch64 | |
rust-targets: aarch64-apple-darwin | |
tauri-target: aarch64-apple-darwin | |
# Intel based macs. | |
- bundle-id: x64 | |
rust-targets: x86_64-apple-darwin | |
tauri-target: x86_64-apple-darwin | |
# Universal | |
- bundle-id: universal | |
rust-targets: aarch64-apple-darwin,x86_64-apple-darwin | |
tauri-target: universal-apple-darwin | |
runs-on: macos-latest | |
env: | |
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install-rust | |
with: | |
targets: ${{ matrix.rust-targets }} | |
- uses: ./.github/actions/install-tauri | |
- uses: ./.github/actions/install-xcode | |
- uses: ./.github/actions/install-node | |
- uses: ./.github/actions/install-certificates | |
id: import-certificate | |
with: | |
certificate: ${{ env.APPLE_CERTIFICATE }} | |
certificate-password: ${{ env.APPLE_CERTIFICATE_PASSWORD }} | |
certificate-regex: 'Developer ID Application' | |
keychain-password: ${{ env.KEYCHAIN_PASSWORD }} | |
- name: Build Web app | |
run: | | |
pnpm build | |
- name: Build macOS app | |
run: | | |
pnpm tauri build --verbose --target ${{ matrix.tauri-target }} | |
- name: Rename build artifacts | |
run: | | |
mv ./src-tauri/target/${{ matrix.tauri-target }}/release/bundle/macos/octo.app ./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app | |
mv ./src-tauri/target/${{ matrix.tauri-target }}/release/bundle/macos/octo.app.tar.gz ./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app.tar.gz | |
mv ./src-tauri/target/${{ matrix.tauri-target }}/release/bundle/macos/octo.app.tar.gz.sig ./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app.tar.gz.sig | |
mv ./src-tauri/target/${{ matrix.tauri-target }}/release/bundle/dmg/octo_*.dmg ./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.dmg | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: true | |
files: | | |
./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app | |
./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app.tar.gz | |
./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.app.tar.gz.sig | |
./octo-${{ env.APP_VERSION }}-${{ matrix.bundle-id }}.dmg | |
make_latest: true | |
name: App ${{ env.APP_VERSION }} | |
tag_name: app-${{ env.APP_VERSION }} | |
target_commitish: ${{ github.sha }} | |
build-desktop-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install-rust | |
- uses: ./.github/actions/install-tauri | |
- uses: ./.github/actions/install-node | |
- name: Build Web app | |
run: | | |
pnpm build | |
- name: Build Windows app | |
run: | | |
pnpm tauri build --verbose | |
- name: Rename build artifacts | |
run: | | |
mv ./src-tauri/target/release/bundle/msi/*.msi ./octo-${{ env.APP_VERSION }}-x64.msi | |
mv ./src-tauri/target/release/bundle/msi/*.msi.sig ./octo-${{ env.APP_VERSION }}-x64.msi.sig | |
mv ./src-tauri/target/release/bundle/nsis/*.exe ./octo-${{ env.APP_VERSION }}-x64.exe | |
mv ./src-tauri/target/release/bundle/nsis/*.exe.sig ./octo-${{ env.APP_VERSION }}-x64.exe.sig | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: true | |
files: | | |
./octo-${{ env.APP_VERSION }}-x64.msi | |
./octo-${{ env.APP_VERSION }}-x64.msi.sig | |
./octo-${{ env.APP_VERSION }}-x64.exe | |
./octo-${{ env.APP_VERSION }}-x64.exe.sig | |
make_latest: true | |
name: App ${{ env.APP_VERSION }} | |
tag_name: app-${{ env.APP_VERSION }} | |
target_commitish: ${{ github.sha }} | |
build-mobile-android: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install-rust | |
with: | |
targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android | |
- uses: ./.github/actions/install-android | |
- uses: ./.github/actions/install-tauri | |
- uses: ./.github/actions/install-node | |
- name: Init Android app | |
run: | | |
pnpm tauri android init | |
- name: Build Web app | |
run: | | |
pnpm build | |
- name: Build Android app | |
run: | | |
pnpm tauri android build --verbose | |
- name: Rename build artifacts | |
run: | | |
mv ./src-tauri/gen/android/app/build/outputs/apk/universal/release/*.apk ./octo-${{ env.APP_VERSION }}-universal.apk | |
mv ./src-tauri/gen/android/app/build/outputs/bundle/universalRelease/*.aab ./octo-${{ env.APP_VERSION }}-universal.aab | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: true | |
files: | | |
./octo-${{ env.APP_VERSION }}-universal.apk | |
./octo-${{ env.APP_VERSION }}-universal.aab | |
make_latest: true | |
name: App ${{ env.APP_VERSION }} | |
tag_name: app-${{ env.APP_VERSION }} | |
target_commitish: ${{ github.sha }} | |
build-mobile-ios: | |
runs-on: macos-latest | |
env: | |
IOS_CERTIFICATE: ${{ secrets.IOS_CERTIFICATE }} | |
IOS_CERTIFICATE_PASSWORD: ${{ secrets.IOS_CERTIFICATE_PASSWORD }} | |
IOS_MOBILE_PROVISION: ${{ secrets.IOS_MOBILE_PROVISION }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install-rust | |
with: | |
targets: aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim | |
- uses: ./.github/actions/install-tauri | |
- uses: ./.github/actions/install-xcode | |
- uses: ./.github/actions/install-node | |
- uses: ./.github/actions/install-certificates | |
id: import-certificate | |
with: | |
certificate: ${{ env.IOS_CERTIFICATE }} | |
certificate-password: ${{ env.IOS_CERTIFICATE_PASSWORD }} | |
keychain-password: ${{ env.KEYCHAIN_PASSWORD }} | |
- name: init ios | |
run: | | |
pnpm tauri ios init --verbose | |
- name: download iOS platform | |
run: | | |
xcodebuild -downloadPlatform iOS | |
- name: checkout files | |
run: | | |
git checkout -- ./src-tauri/gen/apple | |
- name: Build Web app | |
run: | | |
pnpm build | |
- name: Tauri info | |
run: | | |
pnpm tauri info | |
- name: Build iOS app | |
env: | |
APPLE_SIGNING_IDENTITY: ${{ steps.import-certificate.outputs.certificate-id }} | |
run: | | |
pnpm tauri ios build --verbose --export-method app-store-connect | |
- name: Rename build artifacts | |
run: | | |
mv ./src-tauri/gen/apple/build/arm64/octo.ipa ./octo-${{ env.APP_VERSION }}-arm64.ipa | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: true | |
files: | | |
./octo-${{ env.APP_VERSION }}-arm64.ipa | |
make_latest: true | |
name: App ${{ env.APP_VERSION }} | |
tag_name: app-${{ env.APP_VERSION }} | |
target_commitish: ${{ github.sha }} | |
# - uses: tauri-apps/tauri-action@v0 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
# APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
# APPLE_ID: ${{ secrets.APPLE_ID }} | |
# APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
# APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
# APPLE_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
# APPLE_SIGNING_IDENTITY: ${{ env.DESKTOP_CERT_ID }} | |
# with: | |
# tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. | |
# releaseName: App v__VERSION__ | |
# releaseBody: See the assets to download this version and install. | |
# releaseDraft: true | |
# prerelease: false | |
# args: ${{ matrix.args }} | |
release: | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
needs: | |
- build-desktop-linux | |
- build-desktop-macos | |
- build-desktop-windows | |
- build-mobile-android | |
- build-mobile-ios | |
steps: | |
- run: echo 'Release' |