Compare commits

..

No commits in common. "6e3588a72e9af0e48141f2b80f91285923063b2b" and "d91441bac9ab5bed8abc073521a012b8a95e6ed7" have entirely different histories.

2 changed files with 34 additions and 77 deletions

View file

@ -3,11 +3,6 @@
# separate terms of service, privacy policy, and support # separate terms of service, privacy policy, and support
# documentation. # documentation.
# This workflow uses perl regex. For better syntaxis understading see these docs:
# https://perldoc.perl.org/perlrequick#Search-and-replace
# https://perldoc.perl.org/perlre#Other-Modifiers
name: Create new release name: Create new release
run-name: Release v${{ inputs.version }} run-name: Release v${{ inputs.version }}
@ -19,10 +14,6 @@ on:
description: "Version" description: "Version"
required: true required: true
type: string type: string
release-notes:
description: "Release notes"
required: true
type: string
env: env:
BUILD_ARGS: --release --flavor prod --dart-define cameraPreviewAspectRatio=240/320 -t lib/main_prod.dart BUILD_ARGS: --release --flavor prod --dart-define cameraPreviewAspectRatio=240/320 -t lib/main_prod.dart
@ -31,13 +22,14 @@ jobs:
build: build:
name: Build .apk & .aab name: Build .apk & .aab
runs-on: macos-11 runs-on: macos-11
timeout-minutes: 30 timeout-minutes: 15
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- uses: actions/setup-java@v3 - uses: actions/setup-java@v2
with: with:
distribution: "zulu" distribution: "zulu"
java-version: "11" java-version: "11"
@ -103,21 +95,6 @@ jobs:
name: m3_lightmeter_bundle name: m3_lightmeter_bundle
path: build/app/outputs/bundle/prodRelease/app-prod-release.aab path: build/app/outputs/bundle/prodRelease/app-prod-release.aab
generate-release-notes:
name: Generate release notes
runs-on: ubuntu-latest
steps:
- name: Generate release notes
run: |
echo ${{ inputs.release-notes }} > whatsnew-en-US.md
perl -i -pe 's/\s{1}(-{1})/\n$1/g' whatsnew-en-US.md
- name: Upload merged_native_libs.zip to artifacts
uses: actions/upload-artifact@v3
with:
name: whatsnew-en-US
path: whatsnew-en-US.md
update-version-in-repo: update-version-in-repo:
name: Update repo version name: Update repo version
needs: [build] needs: [build]
@ -144,14 +121,18 @@ jobs:
branch: ${{ github.ref_name }} branch: ${{ github.ref_name }}
unprotect_reviews: true unprotect_reviews: true
create-github-release: create-release:
name: Create Github release name: Create Github release
needs: [build, update-version-in-repo]
if: github.ref_name == 'main' if: github.ref_name == 'main'
needs: [build, generate-release-notes, update-version-in-repo]
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Download apk - name: Download apk
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -160,29 +141,26 @@ jobs:
- name: Rename apk - name: Rename apk
run: mv app-prod-release.apk m3_lightmeter.apk run: mv app-prod-release.apk m3_lightmeter.apk
- name: Download release notes
uses: actions/download-artifact@v3
with:
name: whatsnew-en-US
- uses: ncipollo/release-action@v1.12.0 - uses: ncipollo/release-action@v1.12.0
with: with:
artifacts: "m3_lightmeter.apk" artifacts: "m3_lightmeter.apk"
skipIfReleaseExists: true skipIfReleaseExists: true
tag: "v${{ github.event.inputs.version }}" tag: "v${{ github.event.inputs.version }}"
bodyFile: "whatsnew-en-US.md"
- name: Delete apk artifact - name: Delete no longer used apk artifact
uses: geekyeggo/delete-artifact@v2 uses: geekyeggo/delete-artifact@v2
with: with:
name: m3_lightmeter_apk name: m3_lightmeter_apk
create-google-play-release: extract-merged-native-libs:
name: Create Google Play release name: Extract merged native libraries
if: github.ref_name == 'main' needs: [build]
needs: [build, generate-release-notes]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Download app bundle - name: Download app bundle
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -193,54 +171,33 @@ jobs:
unzip app-prod-release.aab unzip app-prod-release.aab
(cd base/lib && zip -r "$OLDPWD/merged_native_libs.zip" .) (cd base/lib && zip -r "$OLDPWD/merged_native_libs.zip" .)
- name: Download release notes
uses: actions/download-artifact@v3
with:
name: whatsnew-en-US
- name: Move release notes to a folder
run: |
mkdir whatsnew
mv whatsnew-en-US.md whatsnew
- name: Create Google Play release
id: create-google-play-release-step
uses: r0adkll/upload-google-play@v1.1.1
with:
serviceAccountJsonPlainText: ${{ secrets.GH_ACTIONS_SERVICE_ACCOUNT_JSON }}
packageName: com.vodemn.lightmeter
releaseFiles: app-prod-release.aab
track: production
status: draft
userFraction: 1.0
debugSymbols: merged_native_libs.zip
whatsNewDirectory: whatsnew
# https://docs.github.com/en/actions/learn-github-actions/expressions#failure-with-conditions
- name: Zip app bundle and merged_native_libs - name: Zip app bundle and merged_native_libs
if: ${{ failure() && steps.create-google-play-release-step.conclusion == 'failure' }}
run: zip m3_lightmeter_release.zip app-prod-release.aab merged_native_libs.zip run: zip m3_lightmeter_release.zip app-prod-release.aab merged_native_libs.zip
- name: Upload release zip to artifacts - name: Upload merged_native_libs.zip to artifacts
if: ${{ failure() && steps.create-google-play-release-step.conclusion == 'failure' }}
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: m3_lightmeter_release name: m3_lightmeter_release
path: m3_lightmeter_release.zip path: m3_lightmeter_release.zip
- name: Delete app bundle & merged native libs artifacts # TODO: this should be moved to `create-google-play-release` step when it is implemented
if: ${{ always() }} - name: Delete no longer used app bundle artifact
uses: geekyeggo/delete-artifact@v2 uses: geekyeggo/delete-artifact@v2
with: with:
name: m3_lightmeter_bundle name: m3_lightmeter_bundle
cleanup: # TODO: Automate Google Play releases creation
name: Cleanup create-google-play-release:
if: ${{ always() }} if: false
needs: [create-github-release, create-google-play-release] name: Create Google Play release
needs: [build, extract-merged-native-libs]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Delete release notes artifact - uses: actions/checkout@v3
uses: geekyeggo/delete-artifact@v2
with: with:
name: whatsnew-en-US submodules: recursive
- name: Download app bundle
uses: actions/download-artifact@v3
with:
name: m3_lightmeter_bundle

View file

@ -1,7 +1,7 @@
name: lightmeter name: lightmeter
description: A new Flutter project. description: A new Flutter project.
publish_to: "none" publish_to: "none"
version: 0.13.1+37 version: 0.13.0+36
environment: environment:
sdk: ">=3.0.0 <4.0.0" sdk: ">=3.0.0 <4.0.0"