diff --git a/.github/workflows/app-release.yml b/.github/workflows/app-release.yml index 0c758fdc..66874b54 100644 --- a/.github/workflows/app-release.yml +++ b/.github/workflows/app-release.yml @@ -4,91 +4,19 @@ on: workflow_dispatch: jobs: - # This workflow contains a single job called "build" build: - # The type of runner that the job will run on runs-on: ubuntu-latest - # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Check out code uses: actions/checkout@v4 with: fetch-depth: '0' - - name: "setup secrets" - run: | - echo "${{ secrets.KEYSTORE_PROPERTIES }}" > keystore.properties.asc - gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch keystore.properties.asc > keystore.properties - - echo "${{ secrets.TOGGLES_KEYSTORE }}" > toggles_keystore.jks.asc - gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch toggles_keystore.jks.asc > toggles_keystore.jks - - echo "${{ secrets.SERVICE_ACCOUNT }}" > service_account.json.asc - gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch service_account.json.asc > service_account.json - - - name: "Calculate build number" - id: version_information - uses: ./.github/actions/version_information - - - name: Check out java - uses: actions/setup-java@v4 - with: - distribution: 'adopt' - java-version: 17 - - - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Run Checks - run: ./gradlew check - - - name: Publish application - if: github.repository == 'erikeelde/toggles' - run: ./gradlew :toggles-app:publishReleaseBundle - - - name: Build sample application - if: github.repository == 'erikeelde/toggles' - run: ./gradlew :toggles-sample:assembleRelease - - - name: Upload binaries - uses: actions/upload-artifact@v4 - with: - name: Apks - path: '**/build/outputs/*' - retention-days: 14 - - uses: release-drafter/release-drafter@v5 with: config-name: release-drafter.yml disable-autolabeler: true + publish: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload Release Asset - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const fs = require('fs'); - const path = 'toggles-sample/build/outputs/apk/release/toggles-sample-release-unsigned.apk'; - const content_type = 'application/vnd.android.package-archive'; - const release_id = '136748606'; - - const response = await github.rest.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release_id, - name: 'toggles-sample.apk', - data: fs.readFileSync(path), - headers: { - 'content-type': content_type, - 'content-length': fs.statSync(path).size - } - }); - - console.log(response); diff --git a/.github/workflows/release_workflow.yml b/.github/workflows/release_workflow.yml new file mode 100644 index 00000000..5572669f --- /dev/null +++ b/.github/workflows/release_workflow.yml @@ -0,0 +1,86 @@ +on: + release: + types: [published] + +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: '0' + + - name: "setup secrets" + run: | + echo "${{ secrets.KEYSTORE_PROPERTIES }}" > keystore.properties.asc + gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch keystore.properties.asc > keystore.properties + + echo "${{ secrets.TOGGLES_KEYSTORE }}" > toggles_keystore.jks.asc + gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch toggles_keystore.jks.asc > toggles_keystore.jks + + echo "${{ secrets.SERVICE_ACCOUNT }}" > service_account.json.asc + gpg -d --passphrase "${{ secrets.GPG_ENCRYPTION_KEY }}" --batch service_account.json.asc > service_account.json + + - name: "Calculate build number" + id: version_information + uses: ./.github/actions/version_information + + - name: Check out java + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: 17 + + - name: Copy CI gradle.properties + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Run Checks + run: ./gradlew check + + - name: Publish application + if: github.repository == 'erikeelde/toggles' + run: ./gradlew :toggles-app:publishReleaseBundle + + - name: Build sample application + if: github.repository == 'erikeelde/toggles' + run: ./gradlew :toggles-sample:assembleRelease + + - name: Upload binaries + uses: actions/upload-artifact@v4 + with: + name: Apks + path: '**/build/outputs/*' + retention-days: 14 + + - name: Upload Release Asset + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const fs = require('fs'); + const path = 'toggles-sample/build/outputs/apk/release/toggles-sample-release-unsigned.apk'; + const content_type = 'application/vnd.android.package-archive'; + const release_id = '136748606'; + + const response = await github.rest.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: 'toggles-sample.apk', + data: fs.readFileSync(path), + headers: { + 'content-type': content_type, + 'content-length': fs.statSync(path).size + } + }); + + console.log(response);