Merge pull request #2419 from tgodzik/update-docs #3175
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@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-12] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '17' | |
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-12, macOS-14] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: coursier/setup-action@v1 | |
with: | |
apps: 'sbt' | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '17' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Tests | |
run: | | |
sbt \ | |
"jsBridge06/publishLocal; \ | |
jsBridge1/publishLocal; \ | |
nativeBridge04/publishLocal; \ | |
nativeBridge05/publishLocal" | |
sbt jsBridge1/test | |
sbt jsBridge06/test | |
sbt nativeBridge05/test | |
sbt nativeBridge04/test | |
shell: bash | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-12, macOS-14] | |
jdk: ["22.3.0", "17"] | |
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:17' | |
apps: 'sbt' | |
if: matrix.jdk == '17' | |
- uses: coursier/setup-action@v1 | |
with: | |
apps: 'sbt' | |
if: matrix.os == 'macOS-14' && matrix.os == 'macOS-14' | |
- uses: coursier/cache-action@v6 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
version: ${{ matrix.jdk }} | |
java-version: '17' | |
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; \ | |
bloopRifle/test; \ | |
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 | |
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-12, macOS-14, windows-latest] | |
include: | |
- os: ubuntu-20.04 | |
artifact: bloop-linux | |
- os: macos-12 | |
artifact: bloop-macos | |
- os: macos-14 | |
artifact: bloop-macos-m1 | |
- 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 }} | |
- uses: coursier/setup-action@v1 | |
with: | |
apps: 'sbt' | |
- name: Publish GraalVM Native artifacts | |
run: sbt "cli/graalvm-native-image:packageBin" | |
- name: Copy artifacts (windows) | |
if: matrix.os == 'windows-latest' | |
run: | | |
echo $ARTIFACT_NAME | |
ls cli/target/graalvm-native-image/bloop-cli.exe | |
mkdir -p bloop-artifacts | |
cp cli/target/graalvm-native-image/bloop-cli.exe bloop-artifacts/$ARTIFACT_NAME | |
shell: bash | |
- name: Copy artifacts (not windows) | |
if: matrix.os != 'windows-latest' | |
run: | | |
ls cli/target/graalvm-native-image/bloop-cli | |
echo $ARTIFACT_NAME | |
mkdir -p bloop-artifacts | |
cp cli/target/graalvm-native-image/bloop-cli bloop-artifacts/$ARTIFACT_NAME | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.artifact }} | |
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:17' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "16" | |
- name: Download built GraalVM binaries | |
uses: actions/download-artifact@v4 | |
with: | |
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 -al bloop-artifacts | |
readlink -f bloop-artifacts | |
sbt ci-release | |
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 |