Merge pull request #2129 from scalacenter/update/scala-debug-adapter-… #2498
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: Continuous Integration | |
on: | |
push: | |
tags: | |
- v1.* | |
- v2.* | |
branches: | |
- main | |
pull_request: | |
jobs: | |
scalafmt: | |
name: Formatting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '17' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check formatting | |
run: ./bin/scalafmt --test | |
integrations: | |
name: Build integrations tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '11' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Tests | |
run: sbt "sbtBloop/publishLocal; sbtBloop/scripted" | |
shell: bash | |
bridges: | |
name: Test platform bridges | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '11' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Tests | |
run: | | |
sbt \ | |
"jsBridge06/publishLocal; \ | |
jsBridge1/publishLocal; \ | |
jsBridge06/test; \ | |
jsBridge1/test" | |
shell: bash | |
launcher: | |
name: Launcher tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '11' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
components: 'native-image' | |
- name: Tests | |
run: | | |
echo $JAVA_HOME | |
sbt "install; launcherTest/test" | |
shell: bash | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
jdk: ["22.3.0", "11"] | |
name: Test ${{ matrix.os }} -- ${{ matrix.jdk }} | |
env: | |
HYDRA_LICENSE: ${{ secrets.HYDRA_LICENSE }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: 'temurin:11.0.18' | |
if: matrix.jdk == '11' | |
- uses: coursier/cache-action@v6 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: ${{ matrix.jdk }} | |
java-version: '11' | |
if: matrix.jdk == '22.3.0' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
- name: Set up environment | |
run: | | |
curl -Lo coursier https://git.io/coursier-cli && chmod +x coursier && ./coursier --help | |
yarn --help | |
java -version | |
[[ $HYDRA_LICENSE == floating-key=* ]] && mkdir -p $HOME/.triplequote && echo "$HYDRA_LICENSE" > "$HOME/.triplequote/hydra.license" || echo "Hydra license file was not created" | |
shell: bash | |
- name: Compile and test main projects | |
run: | | |
sbt \ | |
"frontend/test:compile; \ | |
backend/test; \ | |
docs/compile; \ | |
frontend/testOnly bloop.ScalaVersionsSpec; \ | |
frontend/testOnly -bloop.ScalaVersionsSpec; \ | |
frontend/runMain bloop.util.CommandsDocGenerator --test; \ | |
frontend/runMain bloop.util.CommandsDocGenerator --out ../docs/cli/reference.md" | |
shell: bash | |
- name: Check docs are up-to-date | |
run: | | |
./bin/check-good-practices.sh | |
shell: bash | |
publish-binaries: | |
name: Publish binaries for ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
if: github.event_name == 'push' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, macOS-latest, windows-latest] | |
include: | |
- os: ubuntu-20.04 | |
artifact: bloop-linux | |
- os: macos-latest | |
artifact: bloop-macos | |
- os: windows-latest | |
artifact: bloop-windows | |
env: | |
CI: true | |
SKIP_TEST_RESOURCES_GENERATION: true | |
GITHUB_DEPLOY_KEY: ${{ secrets.GITHUB_DEPLOY_KEY }} | |
BLOOPOID_GITHUB_TOKEN: ${{ secrets.BLOOPOID_GITHUB_TOKEN }} | |
ARTIFACT_NAME: ${{ matrix.artifact }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '17' | |
components: 'native-image' | |
native-image-job-reports: 'true' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish GraalVM Native artifacts | |
run: sbt "bloopgun213/graalvm-native-image:packageBin" | |
- name: Copy artifacts (windows) | |
if: matrix.os == 'windows-latest' | |
run: | | |
echo $ARTIFACT_NAME | |
ls bloopgun/target/bloopgun-2.13/graalvm-native-image/bloopgun-core.exe | |
mkdir -p bloop-artifacts | |
cp bloopgun/target/bloopgun-2.13/graalvm-native-image/bloopgun-core.exe bloop-artifacts/$ARTIFACT_NAME | |
shell: bash | |
- name: Copy artifacts (not windows) | |
if: matrix.os != 'windows-latest' | |
run: | | |
echo $ARTIFACT_NAME | |
mkdir -p bloop-artifacts | |
cp bloopgun/target/bloopgun-2.13/graalvm-native-image/bloopgun-core bloop-artifacts/$ARTIFACT_NAME | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: bloop-artifacts | |
path: bloop-artifacts/${{ matrix.artifact }} | |
release: | |
name: Release version on ${{ matrix.os }} | |
needs: | |
- publish-binaries | |
runs-on: ${{ matrix.os }} | |
if: github.event_name == 'push' | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-20.04] | |
env: | |
CI: true | |
SKIP_TEST_RESOURCES_GENERATION: true | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
GITHUB_DEPLOY_KEY: ${{ secrets.GITHUB_DEPLOY_KEY }} | |
BLOOPOID_GITHUB_TOKEN: ${{ secrets.BLOOPOID_GITHUB_TOKEN }} | |
BLOOPOID_SSH_PUBLIC_KEY: ${{ secrets.BLOOPOID_SSH_PUBLIC_KEY }} | |
BLOOPOID_SSH_PRIVATE_KEY: ${{ secrets.BLOOPOID_SSH_PRIVATE_KEY }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: 'temurin:8' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
- name: Download built GraalVM binaries | |
uses: actions/download-artifact@v3 | |
with: | |
name: bloop-artifacts | |
path: bloop-artifacts | |
- name: Set up environment | |
run: | | |
curl -Lo coursier https://git.io/coursier-cli && chmod +x coursier && ./coursier --help | |
yarn --help | |
shell: bash | |
- name: Publish docs and binaries to Maven Central | |
run: | | |
yarn install | |
touch ~/.profile | |
git config --global user.name "Bloopoid" | |
git config --global user.email "[email protected]" | |
git config --global push.default simple | |
ls -l bloop-artifacts | |
mkdir -p frontend/target | |
mv bloop-artifacts frontend/target/graalvm-binaries | |
sbt "ci-release; docs/docusaurusPublishGhpages" | |
shell: bash | |
- name: Cut GitHub release and update installers on ${{ matrix.os }} | |
run: | | |
if [[ $GITHUB_REF == "refs/tags"* ]]; then | |
. bin/ci-setup-bloopoid-keys.sh | |
export GITHUB_TOKEN="$BLOOPOID_GITHUB_TOKEN" | |
sbt "frontend/updateHomebrewFormula; frontend/updateScoopFormula; frontend/githubRelease" | |
else | |
echo "skipping release since this is a merge and no new tag is detected" | |
fi |