Skip to content

Use Scala Native 0.5.0 #1673

Use Scala Native 0.5.0

Use Scala Native 0.5.0 #1673

Workflow file for this run

name: Compile and Test
on: [push, pull_request]
env:
CI: true # disables SBT super shell which has problems with CI environments
jobs:
compile-lib:
name: Compile library and test
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
scala: ["3.3"]
platform: [JVM, JS, Native]
env:
SCALA_VERSION: ${{ matrix.scala }}
PROJECT: root${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: Set up Java 8 and SBT
uses: actions/setup-java@v2
with:
distribution: temurin
java-version: 8
- name: Cache Coursier
uses: actions/cache@v1
with:
path: ~/.cache/coursier
key: ${{ runner.os }}-coursier-${{ hashFiles('**/*.sbt') }}
- name: Cache SBT ivy cache
uses: actions/cache@v1
with:
path: ~/.ivy2/cache
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}
- name: Cache SBT
uses: actions/cache@v1
with:
path: ~/.sbt
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
- name: Compile (Scala ${{ matrix.scala }} - ${{ matrix.platform }})
run: sbt -J-Xmx3G -Dsbt.color=always ++$SCALA_VERSION $PROJECT/compile
- name: Install scala-native libraries
if: matrix.platform == 'native'
run: sudo apt-get update && sudo apt-get -y install libunwind-dev libre2-dev libsdl2-dev
- name: Compile tests (Scala ${{ matrix.scala }} - ${{ matrix.platform }})
run: sbt -J-Xmx3G -Dsbt.color=always ++$SCALA_VERSION $PROJECT/test:compile
- name: Run tests (Scala ${{ matrix.scala }} - ${{ matrix.platform }})
run: sbt -J-Xmx3G -Dsbt.color=always ++$SCALA_VERSION $PROJECT/test
compile-examples:
name: Compile examples
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v2
- name: Set up Java 17 and SBT
uses: actions/setup-java@v2
with:
distribution: temurin
java-version: 17
- name: Cache Coursier
uses: actions/cache@v1
with:
path: ~/.cache/coursier
key: ${{ runner.os }}-coursier-${{ hashFiles('**/*.sbt') }}
- name: Cache SBT ivy cache
uses: actions/cache@v1
with:
path: ~/.ivy2/cache
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}
- name: Cache SBT
uses: actions/cache@v1
with:
path: ~/.sbt
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
- name: Install Scala-CLI
run: |
curl -fL https://github.com/Virtuslab/scala-cli/releases/latest/download/scala-cli-x86_64-pc-linux.gz | gzip -d > scala-cli
chmod +x scala-cli
sudo mv scala-cli /usr/local/bin/scala-cli
- name: Compile examples (Release)
run: |
cd examples/release
ls | grep ".sc\|.md" | xargs scala-cli compile --server=false
- name: Publish Local
run: sbt -J-Xmx3G -Dsbt.color=always publishLocal
- name: Compile examples (Snapshot)
run: |
cd examples/snapshot
ls | grep ".sc\|.md" | xargs scala-cli compile --server=false
compile-templates:
name: Compile templates
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v2
- name: Set up Java 17 and SBT
uses: actions/setup-java@v2
with:
distribution: temurin
java-version: 17
- name: Cache Coursier
uses: actions/cache@v1
with:
path: ~/.cache/coursier
key: ${{ runner.os }}-coursier-${{ hashFiles('**/*.sbt') }}
- name: Cache SBT ivy cache
uses: actions/cache@v1
with:
path: ~/.ivy2/cache
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}
- name: Cache SBT
uses: actions/cache@v1
with:
path: ~/.sbt
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
- name: Install Tools
run: |
curl -fL "https://github.com/coursier/launchers/raw/master/cs-x86_64-pc-linux.gz" | gzip -d > cs
chmod +x cs
./cs setup --yes
- name: Compile templates (Scala CLI)
run: |
./cs launch giter8 -- file://./src/main/g8 --name=scala-cli-g8-test
./cs launch scala-cli -- compile scala-cli-g8-test
- name: Compile templates (SBT)
run: |
./cs launch giter8 -- file://./src/main/g8 --name=sbt-g8-test --sbt_project=yes
cd sbt-g8-test
sbt compile
coverage:
name: Code coverage
runs-on: ubuntu-latest
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
steps:
- uses: actions/checkout@v2
- name: Set up Java 8 and SBT
uses: actions/setup-java@v2
with:
distribution: temurin
java-version: 8
- name: Cache Coursier
uses: actions/cache@v1
with:
path: ~/.cache/coursier
key: ${{ runner.os }}-coursier-${{ hashFiles('**/*.sbt') }}
- name: Cache SBT ivy cache
uses: actions/cache@v1
with:
path: ~/.ivy2/cache
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}
- name: Cache SBT
uses: actions/cache@v1
with:
path: ~/.sbt
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
- name: Compute coverage
run: sbt -J-Xmx3G -Dsbt.color=always rootJVM/clean coverage rootJVM/test rootJVM/coverageAggregate
- name: Upload report
run: bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r jvm/target/scala-3.3.3/coverage-report/cobertura.xml