71 lines
2.3 KiB
YAML
71 lines
2.3 KiB
YAML
# 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]
|
|
jobs:
|
|
publish:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Maven Central Repository
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 11
|
|
server-id: ossrh
|
|
server-username: MAVEN_USERNAME
|
|
server-password: MAVEN_PASSWORD
|
|
- 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:
|
|
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
|
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
|
|
run: |
|
|
mvn \
|
|
--no-transfer-progress \
|
|
--batch-mode \
|
|
-Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} \
|
|
-Prelease clean deploy
|
|
- name: Publish IntelliJ plugin to JetBrains Marketplace
|
|
run: |
|
|
pushd ktfmt_idea_plugin
|
|
./gradlew publishPlugin --stacktrace
|
|
popd
|
|
env:
|
|
JETBRAINS_MARKETPLACE_TOKEN: ${{ secrets.JETBRAINS_MARKETPLACE_TOKEN }}
|
|
- uses: actions/setup-node@v2
|
|
- 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"
|