Skip to content

silly

silly #78

# GitHub Actions Workflow is created for testing and preparing the plugin release in the following steps:
# - Validate Gradle Wrapper.
# - Run 'test' and 'verifyPlugin' tasks.
# - Run Qodana inspections.
# - Run the 'buildPlugin' task and prepare artifact for further tests.
# - Run the 'runPluginVerifier' task.
# - Create a draft release.
#
# The workflow is triggered on push and pull_request events.
#
# GitHub Actions reference: https://help.github.com/en/actions
name: BAML Release - Build JetBrains
on:
workflow_call: {}
push:
branches:
- sam/jetbrains
permissions:
contents: read
# Common environment variables
env:
# Turbo remote caching
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: gloo
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-build-jetbrains
cancel-in-progress: true
defaults:
run:
working-directory: ./jetbrains
jobs:
# Prepare environment and build the plugin
build:
name: Build
runs-on: ubuntu-latest
outputs:
version: ${{ steps.properties.outputs.version }}
changelog: ${{ steps.properties.outputs.changelog }}
pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: ./.github/actions/setup-java
- uses: gradle/actions/setup-gradle@v4
# Set environment variables
- name: Export Properties
id: properties
shell: bash
run: |
PROPERTIES="$(./gradlew properties --console=plain -q)"
VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')"
CHANGELOG="$(./gradlew getChangelog --unreleased --no-header --console=plain -q)"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT
echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
# Build plugin
- name: Build plugin
run: ./gradlew buildPlugin
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: baml-jetbrains-zip-${{ steps.properties.outputs.version }}
path: ./jetbrains/build/distributions/*
# # Run tests and upload a code coverage report
# test:
# name: Test
# needs: [ build ]
# runs-on: ubuntu-latest
# steps:
# # Check out the current repository
# - name: Fetch Sources
# uses: actions/checkout@v4
# # Set up Java environment for the next steps
# - name: Setup Java
# uses: actions/setup-java@v4
# with:
# distribution: zulu
# java-version: 21
# # Setup Gradle
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@v4
# # Run tests
# - name: Run Tests
# run: ./gradlew check
# # Collect Tests Result of failed tests
# - name: Collect Tests Result
# if: ${{ failure() }}
# uses: actions/upload-artifact@v4
# with:
# name: tests-result
# path: ./build/reports/tests
# # Upload the Kover report to CodeCov
# - name: Upload Code Coverage Report
# uses: codecov/codecov-action@v5
# with:
# files: ./build/reports/kover/report.xml
# # Run Qodana inspections and provide report
# inspectCode:
# name: Inspect code
# needs: [ build ]
# runs-on: ubuntu-latest
# permissions:
# contents: write
# checks: write
# pull-requests: write
# steps:
# # Check out the current repository
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
# fetch-depth: 0 # a full history is required for pull request analysis
# # Set up Java environment for the next steps
# - uses: actions/setup-java@v4
# with:
# distribution: temurin
# java-version: 23
# # Run Qodana inspections
# - name: Qodana - Code Inspection
# uses: JetBrains/qodana-action@v2025.1
# with:
# cache-default-branch-only: true
# # Run plugin structure verification along with IntelliJ Plugin Verifier
# verify:
# name: Verify plugin
# needs: [ build ]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# # Set up Java environment for the next steps
# - name: Setup Java
# uses: actions/setup-java@v4
# with:
# distribution: temurin
# java-version: 23
# # Setup Gradle
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@v4
# # Cache Plugin Verifier IDEs
# - name: Setup Plugin Verifier IDEs Cache
# uses: actions/cache@v4
# with:
# path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides
# key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }}
# # Run Verify Plugin task and IntelliJ Plugin Verifier tool
# - name: Run Plugin Verification tasks
# run: ./gradlew verifyPlugin -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }}
# # Collect Plugin Verifier Result
# - name: Collect Plugin Verifier Result
# if: ${{ always() }}
# uses: actions/upload-artifact@v4
# with:
# name: pluginVerifier-result
# path: ./build/reports/pluginVerifier