| # 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" |