name: release on: push: tags: - "v*.*.*" jobs: get-vars: name: Get vars runs-on: ubuntu-latest outputs: tag: ${{ steps.vars.outputs.tag }} steps: - uses: actions/checkout@v2 - name: Set variables id: vars run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} android-build: name: Android build runs-on: ubuntu-latest needs: get-vars steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: "12.x" - uses: subosito/flutter-action@v1 with: channel: "stable" - name: Get dependencies run: flutter pub get - name: Inject keystore working-directory: android/app run: | echo "${{ secrets.SIGNING_KEY }}" | base64 -d | tee key.jks >/dev/null - name: Generate appbundle env: ANDROID_KEY_ALIAS: ${{ secrets.ALIAS }} ANDROID_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} ANDROID_STORE_PATH: key.jks ANDROID_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} run: flutter build appbundle --release --target lib/main_prod.dart --flavor prod - uses: actions/upload-artifact@v2 with: name: android-appbundle path: | build/app/outputs/bundle/prodRelease/app-prod-release.aab - name: Android build env: ANDROID_KEY_ALIAS: ${{ secrets.ALIAS }} ANDROID_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} ANDROID_STORE_PATH: key.jks ANDROID_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} run: flutter build apk --split-per-abi --release --target lib/main_prod.dart --flavor prod mv build/app/outputs/flutter-apk/app-arm64-v8a-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-arm64-v8a-android.apk mv build/app/outputs/flutter-apk/app-armeabi-v7a-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-armeabi-v7a-android.apk mv build/app/outputs/flutter-apk/app-x86_64-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-android.apk - uses: actions/upload-artifact@v2 with: name: android-build path: | lemmur-*.apk linux-build: name: Linux build needs: get-vars runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: subosito/flutter-action@v1 with: channel: "stable" - name: Get additional dependencies run: | sudo apt-get update -y sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev - name: Enable linux support run: | flutter config --enable-linux-desktop - name: Build run: | flutter build linux --release --target lib/main_prod.dart - name: Archive working-directory: build/linux/x64/release/bundle run: | tar -czf lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-linux.tar.gz * - uses: actions/upload-artifact@v2 with: name: linux-build path: build/linux/x64/release/bundle/lemmur-*.tar.gz windows-build: name: Windows build needs: get-vars runs-on: windows-latest steps: - uses: actions/checkout@v2 - uses: subosito/flutter-action@v1 with: channel: "stable" - name: Enable windows support run: | flutter config --enable-windows-desktop - name: Build run: | flutter build windows --release --target lib/main_prod.dart - name: Archive working-directory: build/windows/runner/Release run: | 7z a lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-windows.zip * - uses: actions/upload-artifact@v2 with: name: windows-build path: build/windows/runner/Release/lemmur-*.zip release: name: Release needs: - get-vars - android-build - linux-build - windows-build runs-on: ubuntu-latest if: github.repository == 'krawieck/lemmur' steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 - name: ls run: ls -R - name: Extract current changelog run: mv fastlane/metadata/android/en-US/changelogs/$(ls fastlane/metadata/android/en-US/changelogs/ | xargs -I'{}' basename '{}' .txt | sort -n | tail -n 1).txt current-changelog.txt - name: Release to GitHub uses: softprops/action-gh-release@v1 with: files: | android-build/* linux-build/* windows-build/* draft: true prerelease: true body_path: current-changelog.txt env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Setup Ruby uses: actions/setup-ruby@v1 with: ruby-version: "2.7" - name: Download bundle dependencies working-directory: fastlane run: | gem install bundler:2.0.2 bundle config path vendor/bundle bundle install - name: Release to Google Play (beta) working-directory: fastlane run: | echo $GOOGLE_SERVICE_ACCOUNT_KEY > $GOOGLE_SERVICE_ACCOUNT_KEY_PATH bundle exec fastlane android prod env: GOOGLE_SERVICE_ACCOUNT_KEY_PATH: ./google-service-account-key.json GOOGLE_SERVICE_ACCOUNT_KEY: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} ABB_PATH: ../android-appbundle/app-release.aab