Merge pull request #30 from Metatavu/feature-29-build-per-abi-splitting #27
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build app (develop) | |
on: | |
push: | |
branches: | |
- develop | |
jobs: | |
bumpVersion: | |
runs-on: ubuntu-latest | |
environment: develop | |
outputs: | |
new_tag: ${{ steps.get_version.outputs.new_tag }} | |
commit_sha: ${{ steps.get_commit_sha.outputs.commit_sha }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Calculate new version | |
id: get_version | |
uses: mathieudutour/github-tag-action@v6.1 | |
with: | |
dry_run: true | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
tag_prefix: "" | |
- name: Update version in pubspec.yaml | |
run: | | |
sed -i 's/version: .*/version: ${{ steps.get_version.outputs.new_tag }}/g' pubspec.yaml | |
git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add pubspec.yaml | |
git diff --quiet && git diff --staged --quiet || git commit -m "Updated version in pubspec.yaml" | |
- name: Push version changes to develop | |
uses: ad-m/github-push-action@v0.6.0 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: develop | |
- name: Resolve commit SHA | |
id: get_commit_sha | |
run: echo "::set-output name=commit_sha::$(git rev-parse HEAD)" | |
- name: Tag version | |
id: tag_version | |
uses: mathieudutour/github-tag-action@v6.1 | |
with: | |
custom_tag: ${{ steps.get_version.outputs.new_tag }} | |
commit_sha: ${{ steps.get_commit_sha.outputs.commit_sha }} | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
tag_prefix: "" | |
- name: Create a GitHub release | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ steps.get_version.outputs.new_tag }} | |
name: Release ${{ steps.get_version.outputs.new_tag }} | |
body: ${{ steps.get_version.outputs.changelog }} | |
buildAndroid: | |
runs-on: ubuntu-latest | |
environment: develop | |
needs: bumpVersion | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
ref: ${{ needs.bumpVersion.outputs.commit_sha }} | |
- name: Build APK | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: "3.16.0" | |
channel: "stable" | |
- run: | | |
echo ${{ secrets.SIGN_KEYSTORE }} > /tmp/upload-keystore.b64 && base64 -d -i /tmp/upload-keystore.b64 > /tmp/upload-keystore.jks | |
echo storePassword=${{ secrets.SIGN_STORE_PASSWORD }} >> android/key.properties | |
echo keyPassword=${{ secrets.SIGN_KEY_PASSWORD }} >> android/key.properties | |
echo keyAlias=upload >> android/key.properties | |
echo storeFile=/tmp/upload-keystore.jks >> android/key.properties | |
echo API_BASE_PATH=${{ secrets.API_BASE_PATH }} >> .env | |
echo ENVIRONMENT=${{ secrets.ENVIRONMENT }} >> .env | |
echo MQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} >> .env | |
echo MQTT_PORT=${{ secrets.MQTT_PORT }} >> .env | |
echo MQTT_URL=${{ secrets.MQTT_URL }} >> .env | |
echo MQTT_USERNAME=${{ secrets.MQTT_USERNAME }} >> .env | |
echo APP_UPDATES_BASE_URL=${{ secrets.APP_UPDATES_BASE_URL }} >> .env | |
echo CDN_BASE_URL=${{ secrets.CDN_BASE_URL }} >> .env | |
flutter pub get | |
flutter pub run build_runner build --delete-conflicting-outputs | |
flutter build apk | |
mkdir -p update/android/${{ needs.bumpVersion.outputs.new_tag }} | |
mv build/app/outputs/apk/release/output-metadata.json update/android/output-metadata.json | |
mv build/app/outputs/apk/release/*.apk update/android/${{ needs.bumpVersion.outputs.new_tag }}/ | |
- name: Upload APK | |
uses: shallwefootball/s3-upload-action@master | |
with: | |
aws_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_bucket: ${{ secrets.UPDATES_BUCKET }} | |
source_dir: update | |
destination_dir: "staging/" | |
## MacOS build is currently handled manually outside of the CI/CD pipeline. | |
# buildMacOS: | |
# runs-on: macos-latest | |
# environment: develop | |
# needs: bumpVersion | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: | |
# submodules: true | |
# fetch-depth: 0 | |
# ref: ${{ needs.bumpVersion.outputs.commit_sha }} | |
# - name: Build APK | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: "3.13.1" | |
# channel: "stable" | |
# - run: | | |
# echo API_BASE_PATH=${{ secrets.API_BASE_PATH }} >> .env | |
# echo ENVIRONMENT=${{ secrets.ENVIRONMENT }} >> .env | |
# echo MQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} >> .env | |
# echo MQTT_PORT=${{ secrets.MQTT_PORT }} >> .env | |
# echo MQTT_URL=${{ secrets.MQTT_URL }} >> .env | |
# echo MQTT_USERNAME=${{ secrets.MQTT_USERNAME }} >> .env | |
# echo ANDROID_ARCHITECTURE=${{ secrets.ANDROID_ARCHITECTURE }} >> .env | |
# echo APP_UPDATES_BASE_URL=${{ secrets.APP_UPDATES_BASE_URL }} >> .env | |
# echo CDN_BASE_URL=${{ secrets.CDN_BASE_URL }} >> .env | |
# flutter pub get | |
# flutter pub run build_runner build --delete-conflicting-outputs | |
# flutter build macos | |
# mkdir -p update/macos/${{ needs.bumpVersion.outputs.new_tag }} | |
# echo "${{ needs.bumpVersion.outputs.new_tag }}" > update/macos/version.txt | |
# mv build/macos/Build/Products/Release/noheva_visitor_ui.app update/macos/${{ needs.bumpVersion.outputs.new_tag }}/ | |
# - name: Upload APP | |
# uses: shallwefootball/s3-upload-action@master | |
# with: | |
# aws_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
# aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
# aws_bucket: ${{ secrets.UPDATES_BUCKET }} | |
# source_dir: update | |
# destination_dir: "staging/" |