| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # This workflow build iOS App as a .ipa file and upload it to TestFlight.
- name: Build-iOS
- on:
- workflow_dispatch:
- inputs:
- git-ref:
- description: "Release Git Ref (Which branch or tag to build?)"
- required: true
- default: "master"
- env:
- CLOJURE_VERSION: '1.11.1.1413'
- NODE_VERSION: '22'
- JAVA_VERSION: '11'
- jobs:
- build-app:
- runs-on: macos-26
- steps:
- - name: Check out Git repository
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.inputs.git-ref }}
- - uses: maxim-lobanov/setup-xcode@v1
- with:
- xcode-version: '26.0.1'
- - name: Show runtimes
- run: |
- xcrun simctl list > /dev/null
- - name: Install iOS platform
- run: |
- xcodebuild -downloadPlatform iOS
- - name: Install Node.js, NPM and Yarn
- uses: actions/setup-node@v4
- with:
- node-version: ${{ env.NODE_VERSION }}
- - name: Setup Java JDK
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: ${{ env.JAVA_VERSION }}
- - name: Cache clojure deps
- uses: actions/cache@v4
- with:
- path: |
- ~/.m2/repository
- ~/.gitlibs
- key: ${{ runner.os }}-clojure-lib-${{ hashFiles('**/deps.edn') }}
- - name: Setup clojure
- uses: DeLaGuardo/[email protected]
- with:
- cli: ${{ env.CLOJURE_VERSION }}
- - name: Setup build tools
- run: brew install fastlane
- - name: Set Build Environment Variables
- run: |
- echo "ENABLE_FILE_SYNC_PRODUCTION=true" >> $GITHUB_ENV
- - name: Compile CLJS
- run: yarn install && yarn release-mobile
- env:
- LOGSEQ_SENTRY_DSN: ${{ secrets.LOGSEQ_SENTRY_DSN }}
- LOGSEQ_POSTHOG_TOKEN: ${{ secrets.LOGSEQ_POSTHOG_TOKEN }}
- - name: Upload Sentry Sourcemaps (beta only)
- # if: ${{ github.repository == 'logseq/logseq' && (inputs.build-target == 'beta' || github.event.inputs.build-target == 'beta') }}
- run: |
- curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=2.58.4 bash
- release_name="logseq-ios@${{ steps.ref.outputs.version }}"
- sentry-cli releases new "${release_name}"
- sentry-cli releases files "${release_name}" upload-sourcemaps --ext map --ext js ./static/js --url-prefix '~/static/js'
- sentry-cli releases finalize "${release_name}"
- env:
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
- SENTRY_ORG: logseq
- SENTRY_PROJECT: logseq
- - name: Prepare iOS build
- run: npx cap sync ios
- - name: Build and upload iOS app
- run: fastlane beta
- working-directory: ./ios/App
- env:
- APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
- APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
- APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
- APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64: true
- SLACK_URL: ${{ secrets.SLACK_URL }}
- MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
- MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
- XCODE_XCARGS: "-allowProvisioningUpdates"
- - name: Save Static File
- uses: actions/upload-artifact@v4
- with:
- name: static
- path: static
- retention-days: 3
|