[WIP] Scala 3 compatible SBT Plugin #1172
Workflow file for this run
This file contains hidden or 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: Slinky CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| release: | |
| types: [published] | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| java: | |
| - { distribution: temurin, version: 17 } | |
| - { distribution: graalvm, version: 21 } | |
| scalajs: ["1.19.0"] | |
| es2015_enabled: ["false", "true"] | |
| steps: | |
| - name: Configure git to disable Windows line feeds | |
| run: "git config --global core.autocrlf false" | |
| shell: bash | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: ${{ matrix.java.distribution }} | |
| java-version: ${{ matrix.java.version }} | |
| - name: Set up SBT | |
| uses: sbt/setup-sbt@v1 | |
| - name: Style checks | |
| run: sbt styleCheck | |
| - name: Install NPM Dependencies | |
| run: npm install; cd tests; npm install; cd ..; cd native; npm install; cd ..; cd scalajsReactInterop; npm install; cd .. | |
| shell: bash | |
| - name: Test core and native (fastopt + fullopt) | |
| run: sbt +tests/test +native/test "set scalaJSStage in Global := FullOptStage" +tests/test +native/test | |
| env: | |
| SCALAJS_VERSION: ${{ matrix.scalajs }} | |
| ES2015_ENABLED: ${{ matrix.es2015_enabled }} | |
| shell: bash | |
| - name: Test Scala.js React Interop (fastopt + fullopt) | |
| run: sbt scalajsReactInterop/test "set scalaJSStage in Global := FullOptStage" scalajsReactInterop/test | |
| env: | |
| SCALAJS_VERSION: ${{ matrix.scalajs }} | |
| ES2015_ENABLED: ${{ matrix.es2015_enabled }} | |
| shell: bash | |
| build-docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Set up SBT | |
| uses: sbt/setup-sbt@v1 | |
| - name: Build Docs Site | |
| run: sbt docs/fullLinkJS | |
| - name: Export Next.js | |
| run: cd docs && npm install && npm run export | |
| build-intellij-plugin: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Set up SBT | |
| uses: sbt/setup-sbt@v1 | |
| - name: Build IntelliJ Plugin | |
| run: sbt coreIntellijSupport/updateIntellij coreIntellijSupport/compile | |
| publish: | |
| needs: [test, build-docs, build-intellij-plugin] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Set up SBT | |
| uses: sbt/setup-sbt@v1 | |
| - run: git fetch --unshallow | |
| - name: Publish with SBT | |
| run: export JAVA_OPTS="-Xmx4g" && bash ./publish.sh | |
| if: github.ref == 'refs/heads/main' || github.event_name == 'release' | |
| env: | |
| encrypted_key: ${{ secrets.key }} | |
| encrypted_iv: ${{ secrets.iv }} | |
| PGP_PASSPHRASE: ${{ secrets.pgp_passphrase }} | |
| publish-intellij-plugin: | |
| needs: [test, build-docs, build-intellij-plugin] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Set up SBT | |
| uses: sbt/setup-sbt@v1 | |
| - run: git fetch --unshallow | |
| - name: Publish to Marketplace | |
| run: sbt coreIntellijSupport/updateIntellij coreIntellijSupport/packageArtifact coreIntellijSupport/packageArtifact coreIntellijSupport/publishAutoChannel | |
| if: github.ref == 'refs/heads/main' || github.event_name == 'release' | |
| env: | |
| IJ_PLUGIN_REPO_TOKEN: ${{ secrets.ij_plugin_repo_token }} |