-
Notifications
You must be signed in to change notification settings - Fork 2
94 lines (89 loc) · 3.01 KB
/
ci.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: CI
on:
push:
tags: [ 'v*.*.*' ]
branches: [ '**' ]
pull_request:
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-is
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Check formatting
run: cargo fmt -- --check
- name: Clippy
run: cargo clippy -- -Dwarnings
- name: Tests
run: cargo test --all-features --test all
build-scala:
needs: [ build ]
strategy:
matrix:
scala-version: [ 2.12.19, 2.13.14 ]
scalajs-version: [ 1.16.0 ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Scala
run: |
curl -O https://downloads.lightbend.com/scala/${{ matrix.scala-version }}/scala-${{ matrix.scala-version }}.deb
sudo dpkg -i scala-${{ matrix.scala-version }}.deb
rm scala-${{ matrix.scala-version }}.deb
- name: Setup Scalajs
run: |
cd tests/wit
SCALA_VERSION_SHORT="$(echo ${{ matrix.scala-version }} | cut -d. -f1,2)"
SCALAJS_LIBRARY="scalajs-library_${SCALA_VERSION_SHORT}-${{ matrix.scalajs-version }}.jar"
curl -O "https://repo1.maven.org/maven2/org/scala-js/scalajs-library_${SCALA_VERSION_SHORT}/${{ matrix.scalajs-version }}/${SCALAJS_LIBRARY}"
- name: Compile
run: |
cd tests/wit
SCALA_VERSION_SHORT="$(echo ${{ matrix.scala-version }} | cut -d. -f1,2)"
SCALAJS_LIBRARY="scalajs-library_${SCALA_VERSION_SHORT}-${{ matrix.scalajs-version }}.jar"
find . -name "*.scala" | grep -vFf <(grep -v '^#' scalac-excluded.txt) | xargs -I {} scalac -classpath "${SCALAJS_LIBRARY}" {}
publish:
needs: [ build, build-scala ]
if: "startsWith(github.ref, 'refs/tags/v')"
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-is
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- id: get_version
uses: battila7/get-version-action@v2
- name: Publish crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
export VERSION="${{ steps.get_version.outputs.version-without-v }}"
sed -i "s/0.0.0/$VERSION/g" Cargo.toml
cargo publish --all-features --allow-dirty