Skip to content

Merge pull request #2190 from tgodzik/fix-tests #2629

Merge pull request #2190 from tgodzik/fix-tests

Merge pull request #2190 from tgodzik/fix-tests #2629

Workflow file for this run

name: Continuous Integration
on:
push:
tags:
- v1.*
- v2.*
branches:
- main
pull_request:
jobs:
scalafmt:
name: Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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@v4
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@v4
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@v4
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@v4
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@v4
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@v4
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@v4
with:
submodules: true
fetch-depth: 0
- uses: coursier/setup-action@v1
with:
jvm: 'temurin:8'
- uses: actions/setup-node@v4
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