Skip to content

Clean up release instructions and CI #20

Clean up release instructions and CI

Clean up release instructions and CI #20

Workflow file for this run

name: Changeset action
on:
workflow_dispatch:
push:
branches:
- main
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 9
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Make PR title
id: getver
run: |
pnpm ci:version
echo "TITLE=v$(./scripts/get_version.sh)" >> "$GITHUB_OUTPUT"
git restore .
env:
# requires repo and read:user access
GITHUB_TOKEN: ${{ secrets.CHANGESET_GH_TOKEN }}
- name: Create Release Pull Request
id: changesets
uses: changesets/action@v1
with:
title: ${{ steps.getver.outputs.TITLE }}
commit: ${{ steps.getver.outputs.TITLE }}
version: pnpm ci:version
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.CHANGESET_GH_TOKEN }}
outputs:
publishedPackages: ${{ steps.changesets.outputs.publishedPackages }}
hasPublished: ${{ steps.changesets.outputs.published == 'true' }}
debug-outputs:
needs: release
name: Debug
runs-on: ubuntu-latest
steps:
- name: "echo outputs"
run: |
echo ${{ needs.release.outputs.publishedPackages }}
echo ${{ needs.release.outputs.hasPublished }}
publish-kotlin:
needs: release
name: Publish Kotlin
if: ${{ needs.release.outputs.hasPublished == 'true' }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./server-sdk-kotlin
steps:
- name: checkout server-sdk-kotlin
uses: actions/checkout@v3
with:
path: ./server-sdk-kotlin
submodules: recursive
- name: set up JDK 12
uses: actions/setup-java@v2
with:
java-version: '12'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew assemble
- name: Create gpg key and import into gradle properties
run: |
echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc
gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc
sed -i -e "s,nexusUsername=,nexusUsername=$NEXUS_USERNAME,g" gradle.properties
sed -i -e "s,nexusPassword=,nexusPassword=$NEXUS_PASSWORD,g" gradle.properties
sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties
sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties
sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties
env:
GPG_KEY_ARMOR: "${{ secrets.SIGNING_KEY_ARMOR }}"
GPG_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
GPG_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
- name: Publish to sonatype
run: ./gradlew publish
- name: Close and release to maven
run: ./gradlew closeAndReleaseRepository
update-snapshot:
needs: release
name: Update SNAPSHOT
if: ${{ needs.release.outputs.hasPublished == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Update snapshot
id: update
run: echo "SNAPSHOT_VERSION=$(./scripts/update_snapshot_version.sh)" >> "$GITHUB_OUTPUT"
- name: Log version
env:
SNAPSHOT_VERSION: ${{ steps.update.outputs.SNAPSHOT_VERSION }}
run: echo $SNAPSHOT_VERSION
- name: Create Update SNAPSHOT Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.CHANGESET_GH_TOKEN }}
branch: dl/update_snapshot_ver
title: Prepare snapshot version ${{ steps.update.outputs.SNAPSHOT_VERSION }}
commit-message: Prepare snapshot version ${{ steps.update.outputs.SNAPSHOT_VERSION }}