Skip to content

Commit

Permalink
Split release into separate workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
erikeelde committed Jan 12, 2024
1 parent 174363e commit 40f7f3e
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 73 deletions.
74 changes: 1 addition & 73 deletions .github/workflows/app-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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);
86 changes: 86 additions & 0 deletions .github/workflows/release_workflow.yml
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit 40f7f3e

Please sign in to comment.