assemble_ios_debug.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # 工作流名称
  2. name: Assemble Ios Debug
  3. # 触发工作流程的事件
  4. on:
  5. push:
  6. branches: [ master ]
  7. tags: [ v* ]
  8. pull_request:
  9. branches: [ master ]
  10. workflow_dispatch:
  11. # 工作流环境变量
  12. env:
  13. # 应用的application_id
  14. APP_ID: com.taro.demo
  15. APP_NAME: Taro Demo
  16. VERSION_NUMBER: 1.0.0
  17. BUILD_TYPE: debug
  18. TEAM_ID: XXXXXXXXXX
  19. PROVISIONING_PROFILE_SPECIFIER: DEV_profile
  20. CODE_SIGN_IDENTITY: iPhone Developer
  21. SIGNING_CERTIFICATE_P12_DATA: ${{secrets.DEBUG_SIGNING_CERTIFICATE_P12_DATA}}
  22. SIGNING_CERTIFICATE_PASSWORD: ${{secrets.DEBUG_SIGNING_CERTIFICATE_PASSWORD}}
  23. PROVISIONING_PROFILE_DATA: ${{secrets.DEBUG_PROVISIONING_PROFILE_DATA}}
  24. jobs:
  25. assemble:
  26. runs-on: macos-12
  27. steps:
  28. - name: Checkout Project
  29. uses: actions/checkout@v2
  30. - name: Cache node_modules Folder
  31. uses: actions/cache@v2
  32. with:
  33. path: ${{ github.workspace }}/node_modules
  34. key: ${{ runner.os }}-node_modules
  35. restore-keys: ${{ runner.os }}-node_modules
  36. - name: Get Yarn Cache Directory Path
  37. id: yarn-cache-dir-path
  38. run: echo "::set-output name=dir::$(yarn cache dir)"
  39. - name: Cache Yarn
  40. uses: actions/cache@v2
  41. env:
  42. cache-name: yarn-cache
  43. with:
  44. path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
  45. key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }}
  46. restore-keys: |
  47. ${{ runner.os }}-yarn-
  48. - name: Cache Pods
  49. uses: actions/cache@v2
  50. with:
  51. path: ios/Pods
  52. key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
  53. restore-keys: |
  54. ${{ runner.os }}-pods-
  55. - name: Install Dependencies
  56. run: |
  57. yarn
  58. - name: Install pods
  59. run: cd ios && pod update --no-repo-update
  60. - name: Import signing certificate
  61. env:
  62. SIGNING_CERTIFICATE_P12_DATA: ${{ env.SIGNING_CERTIFICATE_P12_DATA }}
  63. SIGNING_CERTIFICATE_PASSWORD: ${{ env.SIGNING_CERTIFICATE_PASSWORD }}
  64. run: |
  65. exec .github/scripts/import-certificate.sh
  66. - name: Import provisioning profile
  67. env:
  68. PROVISIONING_PROFILE_DATA: ${{ env.PROVISIONING_PROFILE_DATA }}
  69. run: |
  70. exec .github/scripts/import-profile.sh
  71. - name: Build app
  72. env:
  73. FL_APP_IDENTIFIER: ${{ env.APP_ID }}
  74. FL_UPDATE_PLIST_DISPLAY_NAME: ${{ env.APP_NAME }}
  75. FL_UPDATE_PLIST_PATH: hola/Info.plist
  76. FL_VERSION_NUMBER_VERSION_NUMBER: ${{ env.VERSION_NUMBER }}
  77. FL_BUILD_NUMBER_BUILD_NUMBER: ${{ env.BUILD_NUMBER }}
  78. FL_CODE_SIGN_IDENTITY: ${{ env.CODE_SIGN_IDENTITY }}
  79. FL_PROVISIONING_PROFILE_SPECIFIER: ${{ env.PROVISIONING_PROFILE_SPECIFIER }}
  80. FASTLANE_TEAM_ID: ${{ env.TEAM_ID }}
  81. run: |
  82. cd ios
  83. bundle update
  84. bundle exec fastlane build_dev
  85. - name: Upload Ios Products
  86. uses: actions/upload-artifact@v2
  87. with:
  88. name: app-${{ env.BUILD_TYPE }}
  89. path: |
  90. ${{ github.workspace }}/ios/hola.ipa
  91. ${{ github.workspace }}/ios/hola.app.dSYM.zip
  92. - name: Rename release assets
  93. run: |
  94. mv ios/hola.ipa ios/app-${{ env.BUILD_TYPE }}.ipa
  95. mv ios/hola.app.dSYM.zip ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
  96. - name: Upload release assets
  97. uses: softprops/action-gh-release@v1
  98. if: startsWith(github.ref, 'refs/tags/')
  99. with:
  100. prerelease: ${{ contains(github.ref, 'beta') }}
  101. files: |
  102. ios/app-${{ env.BUILD_TYPE }}.ipa
  103. ios/app-${{ env.BUILD_TYPE }}.app.dSYM.zip
  104. env:
  105. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}