60 lines
1.3 KiB
YAML
60 lines
1.3 KiB
YAML
stages:
|
|
- check
|
|
- compile
|
|
- test
|
|
|
|
default:
|
|
image: gumjoe/wacc-ci-scala:slim
|
|
cache:
|
|
- key:
|
|
files:
|
|
- project.scala
|
|
paths:
|
|
- .coursier-cache/
|
|
|
|
variables:
|
|
SCALA_CACHE: --cache=.coursier-cache/
|
|
|
|
check_format:
|
|
stage: check
|
|
needs: []
|
|
before_script:
|
|
- cs install scalafmt
|
|
script:
|
|
- scalafmt --check .
|
|
|
|
check_commits:
|
|
stage: check
|
|
needs: []
|
|
image: node:lts-alpine
|
|
before_script:
|
|
- apk add git
|
|
- npm install -g @commitlint/cli @commitlint/config-conventional
|
|
- git checkout origin/master
|
|
script:
|
|
- git checkout ${CI_COMMIT_SHA}
|
|
- npx commitlint --from origin/master --to ${CI_COMMIT_SHA} --verbose
|
|
|
|
compile_jvm:
|
|
stage: compile
|
|
needs: []
|
|
script:
|
|
- scala compile -Werror --server=false $SCALA_CACHE .
|
|
artifacts:
|
|
paths:
|
|
- .bsp/
|
|
- .scala-build/
|
|
|
|
test_jvm:
|
|
image: gumjoe/wacc-ci-scala:x86
|
|
stage: test
|
|
# Use our own runner (not cloud VM or shared) to ensure we have multiple cores.
|
|
tags: [large]
|
|
# This is expensive, so do use `dependencies` instead of `needs` to
|
|
# ensure all previous stages pass.
|
|
dependencies: [compile_jvm]
|
|
before_script:
|
|
- git clone https://$EXAMPLES_AUTH@gitlab.doc.ic.ac.uk/lab2425_spring/wacc-examples.git
|
|
script:
|
|
- scala test --server=false $SCALA_CACHE .
|