Skip to content

Commit

Permalink
chore(build): refactor on_tag_workflow
Browse files Browse the repository at this point in the history
SUITEDEV-35510

Co-authored-by: Andras Sarro <[email protected]>
  • Loading branch information
matusekma and LordAndras committed Apr 8, 2024
1 parent 329f592 commit 8d67dd2
Showing 1 changed file with 24 additions and 109 deletions.
133 changes: 24 additions & 109 deletions .github/workflows/on_tag_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ on:
- '*.*.*'

env:
USE_LOCAL_DEPENDENCY: ${{ vars.USE_LOCAL_DEPENDENCY }}
RELEASE_MODE: true
ANDROID_RELEASE_STORE_FILE_BASE64: ${{ secrets.ANDROID_RELEASE_STORE_FILE_BASE64 }}
ANDROID_RELEASE_STORE_PASSWORD: ${{ secrets.ANDROID_RELEASE_STORE_PASSWORD }}
ANDROID_RELEASE_KEY_ALIAS: ${{ secrets.ANDROID_RELEASE_KEY_ALIAS }}
ANDROID_RELEASE_KEY_PASSWORD: ${{ secrets.ANDROID_RELEASE_KEY_PASSWORD }}
FIREBASE_PROJECT_ID: ${{ vars.FIREBASE_PROJECT_ID }}
FIREBASE_SERVICE_ACCOUNT_JSON: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }}
GOOGLE_OAUTH_SERVER_CLIENT_ID: ${{ secrets.GOOGLE_OAUTH_SERVER_CLIENT_ID }}
GOOGLE_SERVICES_JSON_BASE64: ${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }}
GOOGLE_PLAY_STORE_SEVICE_ACCOUNT_JSON_BASE64: ${{ secrets.GOOGLE_PLAY_STORE_SEVICE_ACCOUNT_JSON_BASE64 }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
SONATYPE_SIGNING_KEY_ID: ${{ secrets.SONATYPE_SIGNING_KEY_ID }}
SONATYPE_SIGNING_PASSWORD: ${{ secrets.SONATYPE_SIGNING_PASSWORD }}
SONATYPE_SIGNING_SECRET_KEY_RING_FILE_BASE64: ${{ secrets.SONATYPE_SIGNING_SECRET_KEY_RING_FILE_BASE64 }}
RELEASE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD }}
RELEASE_KEY_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
RELEASE_STORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
Expand All @@ -17,9 +34,6 @@ env:
SLACK_USERNAME: Emarsys SDK - Android
EXCLUDE_GOOGLE_SERVICES_API_KEY: true
SIGNING_SECRET_KEY_RING_FILE: /home/runner/work/android-emarsys-sdk/android-emarsys-sdk/secring.asc.gpg
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
SIGNING_KEYID: ${{ secrets.SIGNING_KEYID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}

Expand All @@ -38,120 +52,20 @@ jobs:
with:
distribution: 'temurin'
java-version: 17
- name: create-google services json
uses: jsdaniell/[email protected]
with:
name: google-services.json
json: ${{ secrets.GOOGLE_SERVICES_JSON }}
dir: sample

- name: setup RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Create release keystore file
shell: bash
run: |
echo "${{ secrets.ANDROID_KEYSTORE }}" > mobile-team-android.jks.asc
gpg -d --passphrase "${{ secrets.ANDROID_GPG_PASSWORD }}" --batch mobile-team-android.jks.asc > sample/mobile-team-android.jks
- name: Create mavenCentral keystore file
shell: bash
run: |
echo "${{ secrets.SIGNING_KEY_FILE_ASC }}" > secring.asc
gpg --dearmor secring.asc > secring.gpg
- name: create local.properties
run: echo $ANDROID_HOME > local.properties
- name: Prepare CI
run: make prepare-ci

- name: Release with Gradle
run: ./gradlew clean assembleRelease && ./gradlew publishToSonatype

CreateSampleReleaseBundle:
name: Create release bundle from sample app
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0 # 0 indicates all history
- run: git fetch --all || echo "==> Accept any result"
- name: set up JDK 1.17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: create-google services json
uses: jsdaniell/[email protected]
with:
name: google-services.json
json: ${{ secrets.GOOGLE_SERVICES_JSON }}
dir: sample

- name: create local.properties
run: echo $ANDROID_HOME > local.properties

- name: setup RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Create release keystore file
shell: bash
run: |
echo "${{ secrets.ANDROID_KEYSTORE }}" > mobile-team-android.jks.asc
gpg -d --passphrase "${{ secrets.ANDROID_GPG_PASSWORD }}" --batch mobile-team-android.jks.asc > sample/mobile-team-android.jks
- name: Create release sample app with Gradle
run: ./gradlew :sample:bundleRelease

- name: Upload bundle
uses: actions/upload-artifact@v4
with:
name: mobile-sdk-sample
path: sample/build/outputs/bundle/release/sample-release.aab

ReleaseSample:
name: Release sample app
runs-on: ubuntu-latest
needs: [Release, CreateSampleReleaseBundle]
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0 # 0 indicates all history
- run: git fetch --all || echo "==> Accept any result"

- name: Download sample app
uses: actions/download-artifact@v4
with:
name: mobile-sdk-sample

- name: create-google services json
uses: jsdaniell/[email protected]
with:
name: google-play-services.json
json: ${{ secrets.GOOGLE_PLAY_STORE_SEVICE_ACCOUNT_JSON }}

- name: Playstore upload
uses: r0adkll/[email protected]
with:
serviceAccountJson: google-play-services.json
packageName: com.emarsys.sample
releaseFiles: sample-release.aab
- name: setup RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Create Release Page
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.RELEASE_VERSION }}
release_name: ${{ github.ref }}
body_path: changelog.md
draft: false
prerelease: false
run: make release

SlackNotification:
name: Send slack notification
runs-on: ubuntu-latest
needs: [ReleaseSample]
needs: [Release]
steps:
- name: setup RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
Expand Down Expand Up @@ -188,10 +102,11 @@ jobs:
job_status: 'success'
user_icon: '${{env.SLACK_ICON}}'
actions: '[{ "type": "button", "text": "View actions", "url": "https://github.com/emartech/android-emarsys-sdk/actions" },{ "type": "button", "text": "View Firebase", "url": "https://console.firebase.google.com/project/ems-mobile-sdk/testlab/histories/" },{ "type": "button", "text": "Install page", "url": "http://ems-mobileteam-artifacts.s3-website-eu-west-1.amazonaws.com/index-ems.html" }]'

CreateJiraTicket:
name: Create Jira ticket
runs-on: ubuntu-latest
needs: [ReleaseSample]
needs: [Release]
steps:
- name: Login to Jira
uses: atlassian/gajira-login@master
Expand All @@ -215,7 +130,7 @@ jobs:
OnError:
name: Handle on Error
runs-on: ubuntu-latest
needs: [ReleaseSample]
needs: [Release]
if: ${{ failure() }}
steps:
- uses: actions/checkout@v3
Expand Down

0 comments on commit 8d67dd2

Please sign in to comment.