Skip to content

Release

Release #14

Workflow file for this run

name: Release
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
repository-projects: write
env:
CERTIFICATE_CHAIN: ${{ secrets.CERTIFICATE_CHAIN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
PRIVATE_KEY_PASSWORD: ${{ secrets.PRIVATE_KEY_PASSWORD }}
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
steps:
- uses: actions/checkout@v4
with:
# Fetch all history.
fetch-depth: 0
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v4
- name: Prepare release name
run: |
PLUGIN_NAME=$(grep "^PLUGIN_NAME=" gradle.properties | cut -d '=' -f 2)
VERSION=$(grep "^VERSION_NAME=" gradle.properties | cut -d '=' -f 2)
if [[ $VERSION == *-SNAPSHOT ]]; then
RELEASE_NAME="Nightly"
else
RELEASE_NAME=$PLUGIN_NAME-$VERSION
fi
echo "RELEASE_NAME=$RELEASE_NAME"
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
- name: Build signed plugin
run: ./gradlew signPlugin
- name: Verify IntelliJ plugin
# https://www.jetbrains.com/idea/download/other.html
uses: ChrisCarini/intellij-platform-plugin-verifier-action@v2.0.2
with:
plugin-location: idea-plugin/build/distributions/*-signed.zip
ide-versions: |
ideaIC:2024.1
ideaIC:2024.1.1
ideaIC:2024.1.2
ideaIC:2024.1.3
ideaIC:2024.1.4
ideaIC:LATEST-EAP-SNAPSHOT
failure-levels: |
COMPATIBILITY_WARNINGS
COMPATIBILITY_PROBLEMS
DEPRECATED_API_USAGES
OVERRIDE_ONLY_API_USAGES
NON_EXTENDABLE_API_USAGES
PLUGIN_STRUCTURE_WARNINGS
MISSING_DEPENDENCIES
INVALID_PLUGIN
NOT_DYNAMIC
- name: Publish to Marketplace
if: env.RELEASE_NAME != 'Nightly'
run: ./gradlew publishPlugin
- name: Delete release if exist then create a new one
run: |
gh release view ${{ env.RELEASE_NAME }} && gh release delete ${{ env.RELEASE_NAME }} -y --cleanup-tag
gh release create ${{ env.RELEASE_NAME }} idea-plugin/build/distributions/*-signed.zip -p --generate-notes