build-ios-release.yml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # This workflow build iOS App as a .ipa file and upload it to TestFlight.
  2. name: Build-iOS
  3. on:
  4. workflow_dispatch:
  5. inputs:
  6. git-ref:
  7. description: "Release Git Ref (Which branch or tag to build?)"
  8. required: true
  9. default: "master"
  10. env:
  11. CLOJURE_VERSION: '1.11.1.1413'
  12. NODE_VERSION: '20'
  13. JAVA_VERSION: '11'
  14. jobs:
  15. build-app:
  16. runs-on: macos-13
  17. steps:
  18. - name: Check out Git repository
  19. uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
  20. with:
  21. ref: ${{ github.event.inputs.git-ref }}
  22. - name: Install Node.js, NPM and Yarn
  23. uses: actions/setup-node@v3
  24. with:
  25. node-version: ${{ env.NODE_VERSION }}
  26. - name: Setup Java JDK
  27. uses: actions/setup-java@v3
  28. with:
  29. distribution: 'zulu'
  30. java-version: ${{ env.JAVA_VERSION }}
  31. - name: Cache clojure deps
  32. uses: actions/cache@v3
  33. with:
  34. path: |
  35. ~/.m2/repository
  36. ~/.gitlibs
  37. key: ${{ runner.os }}-clojure-lib-${{ hashFiles('**/deps.edn') }}
  38. - name: Setup clojure
  39. uses: DeLaGuardo/[email protected]
  40. with:
  41. cli: ${{ env.CLOJURE_VERSION }}
  42. - name: Setup build tools
  43. run: brew install fastlane
  44. - name: Set Build Environment Variables
  45. run: |
  46. echo "ENABLE_FILE_SYNC_PRODUCTION=true" >> $GITHUB_ENV
  47. - name: Compile CLJS
  48. run: yarn install && yarn release-app
  49. env:
  50. LOGSEQ_SENTRY_DSN: ${{ secrets.LOGSEQ_SENTRY_DSN }}
  51. LOGSEQ_POSTHOG_TOKEN: ${{ secrets.LOGSEQ_POSTHOG_TOKEN }}
  52. - name: Sync static build files
  53. run: rsync -avz --exclude node_modules --exclude '*.js.map' --exclude android ./static/ ./public/static/
  54. - name: Prepare iOS build
  55. run: npx cap sync ios
  56. - name: Build and upload iOS app
  57. run: fastlane beta
  58. working-directory: ./ios/App
  59. env:
  60. APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
  61. APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
  62. APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
  63. APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64: true
  64. SLACK_URL: ${{ secrets.SLACK_URL }}
  65. MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
  66. MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
  67. - name: Save Static File
  68. uses: actions/upload-artifact@v4
  69. with:
  70. name: static
  71. path: static