aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/deploy_github_releases.yml
blob: 05b90e2cb3d5c7afd653637b46b1cd61f5a68121 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Publish APS binaries to GitHub Releases
on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+'

jobs:
  build:
    name: Build release binaries
    runs-on: ubuntu-latest
    steps:
    - uses: actions/setup-java@d202f5dbf7256730fb690ec59f6381650114feb2
      with:
        java-version: '11'

    - name: Checkout repository
      uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f

    - name: Decrypt secrets
      run: scripts/signing-setup.sh "$ENCRYPT_KEY"
      env:
        ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }}

    - name: Copy CI gradle.properties
      run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

    - name: Build release binaries
      uses: gradle/gradle-build-action@cba1833ddecbbee649950c284416981928631008
      with:
        arguments: :app:assembleFreeRelease :app:assembleNonFreeRelease :app:bundleNonFreeRelease

    - name: Upload non-free release APK
      uses: actions/upload-artifact@27121b0bdffd731efa15d66772be8dc71245d074
      with:
        name: APS Non-Free Release APK
        path: app/build/outputs/apk/nonFree/release/app-nonFree-release.apk

    - name: Upload non-free release Bundle
      uses: actions/upload-artifact@27121b0bdffd731efa15d66772be8dc71245d074
      with:
        name: APS Non-Free Release Bundle
        path: app/build/outputs/bundle/nonFreeRelease/app-nonFree-release.aab

    - name: Upload free release APK
      uses: actions/upload-artifact@27121b0bdffd731efa15d66772be8dc71245d074
      with:
        name: APS Free Release APK
        path: app/build/outputs/apk/free/release/app-free-release.apk

    - name: Clean secrets
      if: always()
      run: scripts/signing-cleanup.sh

  create_github_release:
    name: Create GitHub Release
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Checkout
        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f

      - name: Get Non-Free Release APK
        uses: actions/download-artifact@4a7a711286f30c025902c28b541c10e147a9b843
        with:
          name: APS Non-Free Release APK
          path: artifacts/nonFree

      - name: Get Non-Free Bundle
        uses: actions/download-artifact@4a7a711286f30c025902c28b541c10e147a9b843
        with:
          name: APS Non-Free Release Bundle
          path: artifacts/nonFree

      - name: Get Free Release APK
        uses: actions/download-artifact@4a7a711286f30c025902c28b541c10e147a9b843
        with:
          name: APS Free Release APK
          path: artifacts/free

      - name: Get Changelog Entry
        id: changelog_reader
        uses: mindsers/changelog-reader-action@e1a36842bddbd512340f882735802de843998e1f
        with:
          version: ${{ github.ref }}
          path: ./CHANGELOG.md

      - name: Create Release
        id: create_release
        uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ github.ref }}
          body: ${{ steps.changelog_reader.outputs.changes }}
          draft: true
          prerelease: false

      - name: Get the version
        id: get_version
        run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/}

      - name: Upload Non-Free Release Apk
        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./artifacts/nonFree/app-nonFree-release.apk
          asset_name: APS-nonFree_${{ steps.get_version.outputs.VERSION }}.apk
          asset_content_type: application/vnd.android.package-archive

      - name: Upload Non-Free Release Bundle
        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./artifacts/nonFree/app-nonFree-release.aab
          asset_name: APS-nonFree_${{ steps.get_version.outputs.VERSION }}.aab
          asset_content_type: application/octet-stream

      - name: Upload Free Release Apk
        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./artifacts/free/app-free-release.apk
          asset_name: APS-free_${{ steps.get_version.outputs.VERSION }}.apk
          asset_content_type: application/vnd.android.package-archive