Java sealed classes #530
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Java CI with Gradle | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: | |
release: | |
types: [ "created" ] | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-all-but-mac: | |
runs-on: ubuntu-latest | |
env: | |
WIRESPEC_BUILD_LINUX: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Run | |
run: | | |
make build | |
make image | |
make example | |
- name: Archive linux cli | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wirespec-cli-linux | |
path: src/compiler/cli/build/bin/linuxX64/releaseExecutable/cli.kexe | |
- name: Archive vscode extension | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wirespec-client-vscode | |
path: src/lsp/node/client/build/wirespec-client-vscode-*.vsix | |
- name: Archive Intellij plugin | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wirespec-intellij-plugin | |
path: src/lsp/intellij-plugin/build/distributions/intellij-plugin-*.zip | |
build-mac: | |
runs-on: macos-latest | |
env: | |
WIRESPEC_BUILD_MAC_ARM: true | |
WIRESPEC_BUILD_MAC_X86: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- name: Run | |
run: | | |
./gradlew build | |
- name: Archive macosX86 cli | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wirespec-cli-macos-x86 | |
path: src/compiler/cli/build/bin/macosX64/releaseExecutable/cli.kexe | |
- name: Archive macosArm64 cli | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wirespec-cli-macos-arm64 | |
path: src/compiler/cli/build/bin/macosArm64/releaseExecutable/cli.kexe | |
version: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'release' && github.event.action == 'created' | |
needs: | |
- build-all-but-mac | |
- build-mac | |
outputs: | |
version: ${{steps.version.outputs.version}} | |
steps: | |
- uses: actions/checkout@v3 | |
- id: version | |
name: Generate version | |
uses: ./.github/actions/version | |
with: | |
version: ${{ github.event.release.tag_name }} | |
release-plugin-gradle: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- name: Run | |
run: | | |
./gradlew :src:plugin:gradle:publish | |
release-plugin-maven: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- name: Run | |
run: | | |
./gradlew :src:plugin:maven:publish | |
release-intellij: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Run | |
run: | | |
./gradlew :src:lsp:intellij-plugin:publishPlugin | |
release-vscode: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
VSCE_PAT: ${{ secrets.VSCODE_TOKEN }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Build lib | |
run: | | |
./gradlew :src:compiler:lib:build | |
- name: Build server | |
working-directory: ./src/lsp/node/server | |
run: | | |
npm i | |
npm run build | |
- name: Build extension | |
working-directory: ./src/lsp/node/client | |
run: | | |
npm i | |
npm run build | |
npm version $VERSION | |
npm run vscode:publish | |
release-cli: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wirespec-cli-macos-x86 | |
path: artifacts/macosX64 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wirespec-cli-macos-arm64 | |
path: artifacts/macosArm64 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wirespec-cli-linux | |
path: artifacts/linuxX64 | |
- run: | | |
mkdir uploads | |
cp artifacts/linuxX64/cli.kexe uploads/linuxX64.kexe | |
cp artifacts/macosX64/cli.kexe uploads/macosX64.kexe | |
cp artifacts/macosArm64/cli.kexe uploads/macosArm64.kexe | |
- name: Upload assets | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
uploads/linuxX64.kexe | |
uploads/macosX64.kexe | |
uploads/macosArm64.kexe | |
release-lib-jvm: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- name: Run | |
run: | | |
./gradlew :src:compiler:core:publish | |
./gradlew :src:compiler:lib:publish | |
./gradlew :src:openapi:publish | |
release-lib-npm: | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
env: | |
VERSION: ${{needs.version.outputs.version}} | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
registry-url: 'https://registry.npmjs.org' | |
- name: Build | |
run: | | |
./gradlew :src:compiler:lib:build | |
- name: Build | |
working-directory: ./src/compiler/lib/build/dist/js/productionLibrary | |
run: | | |
npm publish --access public |