Skip to content

0.5.0-beta.2

0.5.0-beta.2 #4

Workflow file for this run

name: Create release
on:
push:
tags:
- '*.*.*'
jobs:
build:
name: Test, build and release APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '21'
- uses: subosito/flutter-action@v2
with:
channel: 'beta' # or: 'stable', 'beta', 'main' or 'master'
cache: true
- name: Get tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Check release type
run: |
if [[ ${{ env.RELEASE_VERSION }} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "IS_PRERELEASE=false" >> $GITHUB_ENV
else
echo "IS_PRERELEASE=true" >> $GITHUB_ENV
fi
- name: Get signing key
run: echo $SIGNING_KEY | base64 -d > android/app/key.jks
env:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- run: java --version
- run: flutter doctor -v
- name: Install dependencies
run: flutter pub get
- name: Generate with build_runner
run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Analyze project source
run: flutter analyze --no-fatal-infos
- name: Run tests and collect coverage
run: flutter test --coverage test/
- name: Clean coverage
run: |
sudo apt-get -y install lcov
lcov -r coverage/lcov.info -o coverage/lcov.info "lib/**.freezed.dart" "lib/**.g.dart" "lib/src/common/localization/**.dart" --ignore-errors unused
- name: Upload to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Build APK
run: flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi -v
env:
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PATH: key.jks
- name: Rename APK
run: |
for f in build/app/outputs/flutter-apk/app*; do mv "$f" "$(echo "$f" | sed s/-release//)"; done
for f in build/app/outputs/flutter-apk/app*; do mv "$f" "$(echo "$f" | sed s/app-/entime-${{ env.RELEASE_VERSION }}-/)"; done
- name: Create a release
uses: ncipollo/release-action@v1
with:
artifacts: "build/app/outputs/flutter-apk/entime*.apk,build/app/outputs/flutter-apk/entime*.sha1"
prerelease: ${{ env.IS_PRERELEASE }}