1# When a new release is created, publish artifacts to Maven Central / JetBrains Marketplace / etc.. 2# 3# About secrets used here: 4# 1. OSSRH_USERNAME, OSSRH_TOKEN: token obtained from https://oss.sonatype.org/ 5# 2. OSSRH_GPG_SECRET_KEY - private key for signing Maven artifacts 6# 3. OSSRH_GPG_SECRET_KEY_PASSWORD - password for unlocking OSSRH_GPG_SECRET_KEY 7# 4. JETBRAINS_MARKETPLACE_TOKEN - token obtained from https://plugins.jetbrains.com/author/me/tokens 8 9name: Publish package to Maven Central and JetBrains Marketplace 10on: 11 release: 12 types: [created] 13jobs: 14 publish: 15 runs-on: ubuntu-latest 16 steps: 17 - uses: actions/checkout@v2 18 - name: Set up Maven Central Repository 19 uses: actions/setup-java@v1 20 with: 21 java-version: 11 22 server-id: ossrh 23 server-username: MAVEN_USERNAME 24 server-password: MAVEN_PASSWORD 25 - id: install-secret-key 26 name: Install gpg secret key 27 run: | 28 cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import 29 gpg --list-secret-keys --keyid-format LONG 30 - id: publish-to-central 31 name: Publish to Maven Central Repository 32 env: 33 MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} 34 MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} 35 run: | 36 mvn \ 37 --no-transfer-progress \ 38 --batch-mode \ 39 -Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} \ 40 -Prelease clean deploy 41 - name: Publish IntelliJ plugin to JetBrains Marketplace 42 run: | 43 pushd ktfmt_idea_plugin 44 ./gradlew publishPlugin --stacktrace 45 popd 46 env: 47 JETBRAINS_MARKETPLACE_TOKEN: ${{ secrets.JETBRAINS_MARKETPLACE_TOKEN }} 48 - uses: actions/setup-node@v2 49 - name: Deploy website 50 run: | 51 KTFMT_TMP_DIR=$(mktemp -d) 52 53 pushd website 54 npm install . 55 KTFMT_WEBSITE_OUTPUT_DIR="$KTFMT_TMP_DIR" gulp build-website 56 popd 57 58 git fetch 59 git checkout gh-pages 60 git config user.email ktfmt@facebook.com 61 git config user.name ktfmt 62 63 rm -rf * 64 cp -R "$KTFMT_TMP_DIR"/* . 65 66 git add . 67 git commit -m "Publish website" 68 git push --force 69 70 rm -rf "$KTFMT_TMP_DIR" 71