# GitHub Actions Workflow created for handling the release process based on the draft release prepared # with the Build workflow. Running the publishPlugin task requires the PUBLISH_TOKEN secret provided. name: Release on: release: types: [released] jobs: # Prepare and publish the plugin to the Marketplace repository # release: # name: Publish Plugin # runs-on: ubuntu-latest # steps: # # - name: Setup Java # uses: actions/setup-java@v3 # with: # java-version: 11 # distribution: 'zulu' # # - name: Fetch Sources # uses: actions/checkout@v4 # with: # ref: ${{ github.event.release.tag_name }} # # - name: Publish Plugin # env: # PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }} # run: ./gradlew publishPlugin build: name: Build runs-on: ubuntu-latest steps: - name: Setup Java uses: actions/setup-java@v3 with: java-version: 11 distribution: 'zulu' - name: Fetch Sources uses: actions/checkout@v4 - name: Setup Gradle Dependencies Cache uses: actions/cache@v3.3.2 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }} - name: Setup Gradle Wrapper Cache uses: actions/cache@v3.3.2 with: path: ~/.gradle/wrapper key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} - name: Set environment variables id: properties shell: bash run: | PROPERTIES="$(./gradlew properties --console=plain -q)" VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')" NAME="$(echo "$PROPERTIES" | grep "^pluginName_:" | cut -f2- -d ' ')" ARTIFACT="${NAME}-${VERSION}.zip" echo "::set-output name=version::$VERSION" echo "::set-output name=name::$NAME" echo "::set-output name=artifact::$ARTIFACT" - name: Build Plugin run: ./gradlew buildPlugin - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: ./build/distributions/${{ steps.properties.outputs.artifact }} asset_name: ${{ steps.properties.outputs.artifact }} asset_content_type: application/zip