Clean up release instructions and CI #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |