From 8d67dd2b4568b01534a1cd6a6eb46e4bd5ccb28b Mon Sep 17 00:00:00 2001 From: Marton Matusek Date: Mon, 8 Apr 2024 15:22:00 +0200 Subject: [PATCH] chore(build): refactor on_tag_workflow SUITEDEV-35510 Co-authored-by: Andras Sarro --- .github/workflows/on_tag_workflow.yml | 133 +++++--------------------- 1 file changed, 24 insertions(+), 109 deletions(-) diff --git a/.github/workflows/on_tag_workflow.yml b/.github/workflows/on_tag_workflow.yml index 9cf573e8..9d9f6aa2 100644 --- a/.github/workflows/on_tag_workflow.yml +++ b/.github/workflows/on_tag_workflow.yml @@ -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 }} @@ -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 }} @@ -38,120 +52,20 @@ jobs: with: distribution: 'temurin' java-version: 17 - - name: create-google services json - uses: jsdaniell/create-json@1.1.2 - 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/create-json@1.1.2 - 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/create-json@1.1.2 - with: - name: google-play-services.json - json: ${{ secrets.GOOGLE_PLAY_STORE_SEVICE_ACCOUNT_JSON }} - - - name: Playstore upload - uses: r0adkll/upload-google-play@v1.1.3 - 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 @@ -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 @@ -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