Skip to content

0.60

0.60 #61

# When a new release is created, publish artifacts to Maven Central / JetBrains Marketplace / etc..
#
# About secrets used here:
# 1. OSSRH_USERNAME, OSSRH_TOKEN: token obtained from https://oss.sonatype.org/
# 2. OSSRH_GPG_SECRET_KEY - private key for signing Maven artifacts
# 3. OSSRH_GPG_SECRET_KEY_PASSWORD - password for unlocking OSSRH_GPG_SECRET_KEY
# 4. JETBRAINS_MARKETPLACE_TOKEN - token obtained from https://plugins.jetbrains.com/author/me/tokens
name: Publish package to Maven Central and JetBrains Marketplace
on:
release:
types: [created]
workflow_dispatch:
inputs:
release_tag:
description: 'Release tag'
required: true
type: string
jobs:
publish_ide_plugin:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.events.release.tag_name || inputs.release_tag || github.ref }}
- name: Publish IntelliJ plugin to JetBrains Marketplace
run: ./gradlew :idea_plugin:publishPlugin --stacktrace --no-daemon
env:
JETBRAINS_MARKETPLACE_TOKEN: ${{ secrets.JETBRAINS_MARKETPLACE_TOKEN }}
publish_maven_artifacts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.events.release.tag_name || inputs.release_tag || github.ref }}
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- id: publish-to-central
name: Publish to Maven Central Repository
env:
SIGN_BUILD: true
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
./gradlew :ktfmt:publish closeAndReleaseStagingRepositories \
--stacktrace \
--no-daemon \
-Psigning.gnupg.passphrase="$GPG_PASSPHRASE"
deploy_website:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.events.release.tag_name || inputs.release_tag || github.ref }}
- uses: actions/setup-node@v4
- name: Deploy website
run: |
KTFMT_TMP_DIR=$(mktemp -d)
pushd website
npm install .
KTFMT_WEBSITE_OUTPUT_DIR="$KTFMT_TMP_DIR" gulp build-website
popd
git fetch
git checkout gh-pages
git config user.email ktfmt@facebook.com
git config user.name ktfmt
rm -rf *
cp -R "$KTFMT_TMP_DIR"/* .
git add .
git commit -m "Publish website"
git push --force
rm -rf "$KTFMT_TMP_DIR"