diff --git a/.github/workflows/autopublish.yml b/.github/workflows/autopublish.yml new file mode 100644 index 000000000..b171a17c0 --- /dev/null +++ b/.github/workflows/autopublish.yml @@ -0,0 +1,74 @@ +name: Publish stytch-android + +on: + push: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: Check versions and tags + runs-on: ubuntu-latest + outputs: + tag_exists: ${{ steps.tags.outputs.tag_exists }} + this_version: ${{ steps.version.outputs.this_version }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: zulu + java-version: 17 + cache: 'gradle' + - name: Get current version + id: version + env: + STYTCH_PUBLIC_TOKEN: 'abc123' + GOOGLE_OAUTH_CLIENT_ID: 'abc123' + STYTCH_B2B_PUBLIC_TOKEN: 'abc123' + STYTCH_B2B_ORG_ID: 'abc123' + PASSKEYS_DOMAIN: 'abc123' + UI_GOOGLE_CLIENT_ID: 'abc123' + run: | + VERSION=$(./gradlew -q printVersion) + echo "Found version $VERSION" + echo "this_version=$VERSION" >> $GITHUB_OUTPUT + - name: Check if tag exists + id: tags + run: | + git fetch --tags + echo "Checking for tags matching ${{ steps.version.outputs.this_version }}" + TAG_EXISTS=false + if [ $(git tag -l "${{ steps.version.outputs.this_version }}") ]; then + TAG_EXISTS=true + fi + echo "Tag exists = $TAG_EXISTS" + echo "tag_exists=$TAG_EXISTS" >> $GITHUB_OUTPUT + publish: + name: Release build and publish + runs-on: ubuntu-latest + needs: check + if: needs.check.outputs.tag_exists == 'false' + steps: + - uses: actions/checkout@v3 + - uses: stytchauth/stytch-android/.github/workflows/publishHeadless.yml@main + tag-and-release: + name: Create tag and release + runs-on: ubuntu-latest + needs: check + if: needs.check.outputs.tag_exists == 'false' + steps: + - uses: actions/checkout@v3 + - name: Create Tag + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git tag -a "${{needs.check.outputs.this_version}}" -m "${{needs.check.outputs.this_version}}" + git push --follow-tags + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release create "${{needs.check.outputs.this_version}}" --generate-notes + diff --git a/.github/workflows/publishHeadless.yml b/.github/workflows/publish.yml similarity index 97% rename from .github/workflows/publishHeadless.yml rename to .github/workflows/publish.yml index a60f4602b..c28cff165 100644 --- a/.github/workflows/publishHeadless.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: Publish Headless SDK +name: Publish SDK on: workflow_dispatch: diff --git a/source/sdk/build.gradle b/source/sdk/build.gradle index 187194afc..55c27497c 100644 --- a/source/sdk/build.gradle +++ b/source/sdk/build.gradle @@ -202,3 +202,11 @@ tasks.withType(Test).configureEach { showStackTraces = true } } + +tasks.register('printVersion') { + group = "Documentation" + description = "Prints the version of the SDK. Used for autoreleasing the SDK from GitHub" + doLast { + println(PUBLISH_VERSION) + } +} \ No newline at end of file