Metadata for app store releases #44
							
								
								
									
										49
									
								
								.gitea/workflows/frontend_deploy-beta.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								.gitea/workflows/frontend_deploy-beta.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  |     paths: | ||||||
|  |       - frontend/** | ||||||
|  |  | ||||||
|  | name: Build and release release apps to production track | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   get-version: | ||||||
|  |     name: Get version | ||||||
|  |     runs-on: macos | ||||||
|  |     steps: | ||||||
|  |       - name: Fetch tags from main branch | ||||||
|  |         # since this workflow is triggered by a pull request, we want to match the latest tag of the main branch | ||||||
|  |         id: version | ||||||
|  |         run: | | ||||||
|  |           git fetch origin main --tags | ||||||
|  |           LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) | ||||||
|  |           # remove the 'v' prefix from the tag name | ||||||
|  |           echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_ENV | ||||||
|  |  | ||||||
|  |   build-android: | ||||||
|  |     name: Build and upload android app | ||||||
|  |     uses: ./.gitea/workflows/workflow_build-app-android.yaml | ||||||
|  |     with: | ||||||
|  |       type: beta | ||||||
|  |       build_name: ${{ env.BUILD_NAME }} | ||||||
|  |     secrets: | ||||||
|  |       ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }} | ||||||
|  |       ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }} | ||||||
|  |       ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} | ||||||
|  |       ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} | ||||||
|  |    | ||||||
|  |   build-ios: | ||||||
|  |     name: Build and upload ios app | ||||||
|  |     uses: ./.gitea/workflows/workflow_build-app-ios.yaml | ||||||
|  |     with: | ||||||
|  |       type: beta | ||||||
|  |       build_name: ${{ env.BUILD_NAME }} | ||||||
|  |     secrets: | ||||||
|  |       MATCH_REPO_SSH_KEY: ${{ secrets.MATCH_REPO_SSH_KEY }} | ||||||
|  |       GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} | ||||||
|  |       IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} | ||||||
|  |       IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} | ||||||
|  |       IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} | ||||||
|  |       MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | ||||||
|  |       IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }} | ||||||
							
								
								
									
										47
									
								
								.gitea/workflows/frontend_deploy-release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								.gitea/workflows/frontend_deploy-release.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: | ||||||
|  |       - v* | ||||||
|  |  | ||||||
|  | name: Build and release release apps to production track | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   get-version: | ||||||
|  |     name: Get version | ||||||
|  |     runs-on: macos | ||||||
|  |     steps: | ||||||
|  |       - name: Get version from git tag | ||||||
|  |         id: version | ||||||
|  |         env:  | ||||||
|  |           REF_NAME: ${{ gitea.ref_name }} | ||||||
|  |         # remove the 'v' prefix from the tag name | ||||||
|  |         run: | | ||||||
|  |           echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   build-android: | ||||||
|  |     name: Build and upload android app | ||||||
|  |     uses: ./.gitea/workflows/workflow_build-app-android.yaml | ||||||
|  |     with: | ||||||
|  |       type: release | ||||||
|  |       build_name: ${{ env.BUILD_NAME }} | ||||||
|  |     secrets: | ||||||
|  |       ANDROID_SECRET_PROPERTIES_BASE64: ${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }} | ||||||
|  |       ANDROID_GOOGLE_PLAY_JSON_BASE64: ${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }} | ||||||
|  |       ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} | ||||||
|  |       ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} | ||||||
|  |    | ||||||
|  |   build-ios: | ||||||
|  |     name: Build and upload ios app | ||||||
|  |     uses: ./.gitea/workflows/workflow_build-app-ios.yaml | ||||||
|  |     with: | ||||||
|  |       type: release | ||||||
|  |       build_name: ${{ env.BUILD_NAME }} | ||||||
|  |     secrets: | ||||||
|  |       MATCH_REPO_SSH_KEY: ${{ secrets.MATCH_REPO_SSH_KEY }} | ||||||
|  |       GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} | ||||||
|  |       IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} | ||||||
|  |       IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} | ||||||
|  |       IOS_ASC_KEY: ${{ secrets.IOS_ASC_KEY }} | ||||||
|  |       MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | ||||||
|  |       IOS_GOOGLE_MAPS_API_KEY: ${{ secrets.IOS_GOOGLE_MAPS_API_KEY }} | ||||||
| @@ -1,18 +1,30 @@ | |||||||
| on: | on: | ||||||
|   pull_request: |   workflow_call: | ||||||
|     branches: |     inputs: | ||||||
|       - main |       build_type: | ||||||
|     paths: |         description: 'Release type (release, beta)' | ||||||
|       - frontend/** |         required: true | ||||||
|  |         type: string | ||||||
|  |       build_name: | ||||||
|  |         description: 'Build name' | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |     secrets: | ||||||
|  |       ANDROID_SECRET_PROPERTIES_BASE64: | ||||||
|  |         required: true | ||||||
|  |       ANDROID_GOOGLE_PLAY_JSON_BASE64: | ||||||
|  |         required: true | ||||||
|  |       ANDROID_KEYSTORE_BASE64: | ||||||
|  |         required: true | ||||||
|  |       ANDROID_GOOGLE_MAPS_API_KEY: | ||||||
|  |         required: true | ||||||
| 
 | 
 | ||||||
| 
 | name: Build and release android appbundle to specfied track | ||||||
| name: Build and release debug APK to testing track |  | ||||||
| 
 | 
 | ||||||
| defaults: | defaults: | ||||||
|   run: |   run: | ||||||
|     working-directory: frontend/android |     working-directory: frontend/android | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| jobs: | jobs: | ||||||
|   build: |   build: | ||||||
|     runs-on: macos |     runs-on: macos | ||||||
| @@ -52,15 +64,6 @@ jobs: | |||||||
|         ruby-version: 3.3 |         ruby-version: 3.3 | ||||||
|         bundler-cache: true # runs 'bundle install' and caches installed gems automatically |         bundler-cache: true # runs 'bundle install' and caches installed gems automatically | ||||||
| 
 | 
 | ||||||
|     - name: Fetch tags from main branch |  | ||||||
|       # since this workflow is triggered by a pull request, we want to match the latest tag of the main branch |  | ||||||
|       id: build_name |  | ||||||
|       run: | |  | ||||||
|         git fetch origin main --tags |  | ||||||
|         LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) |  | ||||||
|         # remove the 'v' prefix from the tag name |  | ||||||
|         echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|     - name: Add required secret files |     - name: Add required secret files | ||||||
|       run: | |       run: | | ||||||
|         echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties |         echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties | ||||||
| @@ -68,8 +71,8 @@ jobs: | |||||||
|         echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore |         echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore | ||||||
| 
 | 
 | ||||||
|     - name: Run fastlane lane |     - name: Run fastlane lane | ||||||
|       run: bundle exec fastlane deploy_beta |       run: bundle exec fastlane deploy_${{ inputs.build_type }} | ||||||
|       env: |       env: | ||||||
|         BUILD_NUMBER: ${{ gitea.run_number }} |         BUILD_NUMBER: ${{ gitea.run_number }} | ||||||
|         BUILD_NAME: ${{ steps.build_name.outputs.BUILD_NAME }} |         BUILD_NAME: ${{ inputs.build_name }} | ||||||
|         ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} |         ANDROID_GOOGLE_MAPS_API_KEY: ${{ secrets.ANDROID_GOOGLE_MAPS_API_KEY }} | ||||||
| @@ -1,11 +1,31 @@ | |||||||
| on: | on: | ||||||
|   pull_request: |   workflow_call: | ||||||
|     branches: |     inputs: | ||||||
|       - main |       build_type: | ||||||
|     paths: |         description: 'Release type (release, beta)' | ||||||
|       - frontend/** |         required: true | ||||||
|  |         type: string | ||||||
|  |       build_name: | ||||||
|  |         description: 'Build name' | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |     secrets: | ||||||
|  |       MATCH_REPO_SSH_KEY: | ||||||
|  |         required: true | ||||||
|  |       GOOGLE_MAPS_API_KEY: | ||||||
|  |         required: true | ||||||
|  |       IOS_ASC_KEY_ID: | ||||||
|  |         required: true | ||||||
|  |       IOS_ASC_ISSUER_ID: | ||||||
|  |         required: true | ||||||
|  |       IOS_ASC_KEY: | ||||||
|  |         required: true | ||||||
|  |       MATCH_PASSWORD: | ||||||
|  |         required: true | ||||||
|  |       IOS_GOOGLE_MAPS_API_KEY: | ||||||
|  |         required: true | ||||||
| 
 | 
 | ||||||
| name: Build and release debugging app to ios testflight | name: Build and release ipa to specified track | ||||||
| 
 | 
 | ||||||
| defaults: | defaults: | ||||||
|   run: |   run: | ||||||
| @@ -42,15 +62,6 @@ jobs: | |||||||
|           flutter clean |           flutter clean | ||||||
|           bundle exec pod cache clean --all |           bundle exec pod cache clean --all | ||||||
| 
 | 
 | ||||||
|       - name: Fetch tags from main branch |  | ||||||
|         # since this workflow is triggered by a pull request, we want to match the latest tag of the main branch |  | ||||||
|         id: build_name |  | ||||||
|         run: | |  | ||||||
|           git fetch origin main --tags |  | ||||||
|           LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) |  | ||||||
|           # remove the 'v' prefix from the tag name |  | ||||||
|           echo "BUILD_NAME=${LATEST_TAG//v}" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: Setup SSH key for match git repo |       - name: Setup SSH key for match git repo | ||||||
|         # and mark the host as known |         # and mark the host as known | ||||||
|         run: | |         run: | | ||||||
| @@ -61,10 +72,10 @@ jobs: | |||||||
|           MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} |           MATCH_REPO_SSH_KEY: ${{ secrets.IOS_MATCH_REPO_SSH_KEY_BASE64 }} | ||||||
| 
 | 
 | ||||||
|       - name: Run fastlane lane |       - name: Run fastlane lane | ||||||
|         run: bundle exec fastlane deploy_beta |         run: bundle exec fastlane deploy_${{ inputs.build_type }} | ||||||
|         env: |         env: | ||||||
|           BUILD_NUMBER: ${{ gitea.run_number }} |           BUILD_NUMBER: ${{ gitea.run_number }} | ||||||
|           BUILD_NAME: ${{ steps.build_name.outputs.BUILD_NAME }} |           BUILD_NAME: ${{ inputs.build_name }} | ||||||
|           GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} |           GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} | ||||||
|           IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} |           IOS_ASC_KEY_ID: ${{ secrets.IOS_ASC_KEY_ID }} | ||||||
|           IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} |           IOS_ASC_ISSUER_ID: ${{ secrets.IOS_ASC_ISSUER_ID }} | ||||||
| @@ -48,6 +48,7 @@ platform :android do | |||||||
|       skip_upload_apk: true, |       skip_upload_apk: true, | ||||||
|       skip_upload_changelogs: true, |       skip_upload_changelogs: true, | ||||||
|       aab: "../build/app/outputs/bundle/release/app-release.aab", |       aab: "../build/app/outputs/bundle/release/app-release.aab", | ||||||
|  |       metadata_path: "fastlane/metadata", | ||||||
|       ) |       ) | ||||||
|   end |   end | ||||||
| end | end | ||||||
|   | |||||||
| @@ -99,8 +99,9 @@ platform :ios do | |||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     upload_to_app_store( |     upload_to_app_store( | ||||||
|       skip_screenshots: true, |       overwrite_screenshots: true, | ||||||
|       skip_metadata: true, |       metadata_path: "fastlane/metadata", | ||||||
|  |       screenshot_path: "fastlane/screenshots", | ||||||
|       precheck_include_in_app_purchases: false, |       precheck_include_in_app_purchases: false, | ||||||
|  |  | ||||||
|       submit_for_review: true, |       submit_for_review: true, | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								status
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								status
									
									
									
									
									
								
							| @@ -1,48 +0,0 @@ | |||||||
| error: wrong number of arguments, should be from 1 to 2 |  | ||||||
| usage: git config [<options>] |  | ||||||
|  |  | ||||||
| Config file location |  | ||||||
|     --[no-]global         use global config file |  | ||||||
|     --[no-]system         use system config file |  | ||||||
|     --[no-]local          use repository config file |  | ||||||
|     --[no-]worktree       use per-worktree config file |  | ||||||
|     -f, --[no-]file <file> |  | ||||||
|                           use given config file |  | ||||||
|     --[no-]blob <blob-id> read config from given blob object |  | ||||||
|  |  | ||||||
| Action |  | ||||||
|     --[no-]get            get value: name [value-pattern] |  | ||||||
|     --[no-]get-all        get all values: key [value-pattern] |  | ||||||
|     --[no-]get-regexp     get values for regexp: name-regex [value-pattern] |  | ||||||
|     --[no-]get-urlmatch   get value specific for the URL: section[.var] URL |  | ||||||
|     --[no-]replace-all    replace all matching variables: name value [value-pattern] |  | ||||||
|     --[no-]add            add a new variable: name value |  | ||||||
|     --[no-]unset          remove a variable: name [value-pattern] |  | ||||||
|     --[no-]unset-all      remove all matches: name [value-pattern] |  | ||||||
|     --[no-]rename-section rename section: old-name new-name |  | ||||||
|     --[no-]remove-section remove a section: name |  | ||||||
|     -l, --[no-]list       list all |  | ||||||
|     --[no-]fixed-value    use string equality when comparing values to 'value-pattern' |  | ||||||
|     -e, --[no-]edit       open an editor |  | ||||||
|     --[no-]get-color      find the color configured: slot [default] |  | ||||||
|     --[no-]get-colorbool  find the color setting: slot [stdout-is-tty] |  | ||||||
|  |  | ||||||
| Type |  | ||||||
|     -t, --[no-]type <type> |  | ||||||
|                           value is given this type |  | ||||||
|     --bool                value is "true" or "false" |  | ||||||
|     --int                 value is decimal number |  | ||||||
|     --bool-or-int         value is --bool or --int |  | ||||||
|     --bool-or-str         value is --bool or string |  | ||||||
|     --path                value is a path (file or directory name) |  | ||||||
|     --expiry-date         value is an expiry date |  | ||||||
|  |  | ||||||
| Other |  | ||||||
|     -z, --[no-]null       terminate values with NUL byte |  | ||||||
|     --[no-]name-only      show variable names only |  | ||||||
|     --[no-]includes       respect include directives on lookup |  | ||||||
|     --[no-]show-origin    show origin of config (file, standard input, blob, command line) |  | ||||||
|     --[no-]show-scope     show scope of config (worktree, local, global, system, command) |  | ||||||
|     --[no-]default <value> |  | ||||||
|                           with --get, use default value when missing entry |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user