Skip to content

feat: android publish pipeline #2

feat: android publish pipeline

feat: android publish pipeline #2

name: Publish to Maven Central
# on:
# release:
# types: [created]
on:
push:
branches: [ androidPublishPipeline ]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Checkout Android Repo
uses: actions/checkout@v4
with:
repository: juspay/hyperswitch-sdk-android
ref: newPublishPipeline
path: android
- name: Check if commit message starts with "release:"
id: check_commit
run: |
COMMIT_MSG="${{ github.event.head_commit.message }}"
# Check if commit message starts with 'release:'
if [[ "$COMMIT_MSG" != release:* ]]; then
echo "Commit message does not start with 'release:'. Skipping workflow."
exit 0
fi
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# server-id: central
# server-username: MAVEN_USERNAME
# server-password: MAVEN_PASSWORD
# gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
# gpg-passphrase: GPG_PASSPHRASE
- name: Extract libraries from commit message
id: extract-libs
run: |
# Extract text between square brackets after [build-libs]
COMMIT_MSG="${{ github.event.head_commit.message }}"
LIBS=$(echo "$COMMIT_MSG" | grep -o '\[build-libs\]\[.*\]' | grep -o '\[.*\]$' | tr -d '[]')
if [ -z "$LIBS" ]; then
echo "No libraries specified in commit message"
# exit 1
fi
echo "Found libraries: $LIBS"
echo "libraries=$LIBS" >> $GITHUB_OUTPUT
# COMMIT_MSG="${{ github.event.head_commit.message }}"
# # Check if commit message contains a valid format for libraries
# # if [[ "$COMMIT_MSG" =~ ^release:\ \[([a-zA-Z0-9, ]+)\]\ .* ]]; then
# LIBS="${BASH_REMATCH[1]}"
# echo "Found libraries: $LIBS"
# echo "libraries=$LIBS" >> $GITHUB_OUTPUT
# # else
# # echo "No valid libraries found in commit message"
# # exit 1
# # fi
- name: Enable Corepack and Install Yarn
run: |
# Enable Corepack
corepack enable
# corepack prepare [email protected] --activate
- name: Dependency Install
run: |
# Install dependencies using yarn
npm i
npm run re:start
echo "Directory structure after setup:"
ls -L
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582
with:
build-root-directory: ./android
- name: Build and Publish
working-directory: ./android
env:
# MAVEN_USERNAME: ${{ secrets.CENTRAL_TOKEN_USERNAME }}
# MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
# GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }}
# GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
# GPG_FULL_SIGNING_KEY: ${{ secrets.GPG_FULL_SIGNING_KEY }}
# SONATYPE_TOKEN: ${{ secrets.SONATYPE_TOKEN_2 }}
# SELECTED_LIBRARIES: "hyperswitch-gradle-plugin,plugin"
SELECTED_LIBRARIES: ${{ steps.extract-libs.outputs.libraries }}
run: |
pwd
ls -la
ls -la ../
../build-lib.sh
# - name: Upload to Maven Central
# env:
# SONATYPE_TOKEN: ${{ secrets.SONATYPE_TOKEN }}
# run: ./upload-lib.sh