Skip to content

Commit cba25e2

Browse files
authored
Merge pull request #653 from swimos/ci
Migration to Github Actions
2 parents 35ca40e + 996b7d9 commit cba25e2

File tree

9 files changed

+161
-211
lines changed

9 files changed

+161
-211
lines changed

.github/workflows/ci.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
on:
2+
pull_request:
3+
push:
4+
branches: main
5+
6+
name: Continuous integration
7+
env:
8+
latest_version: '1.78.0'
9+
10+
jobs:
11+
test:
12+
name: Test
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
os:
17+
- windows-latest
18+
- ubuntu-latest
19+
- macos-latest
20+
steps:
21+
- uses: actions/checkout@v2
22+
- name: Install Rust
23+
uses: dtolnay/rust-toolchain@stable
24+
with:
25+
toolchain: ${{ env.latest_version }}
26+
- uses: Swatinem/rust-cache@v2
27+
- run: cargo test --all-features --workspace --lib --tests --profile "ci"
28+
29+
# Check step to ensure that all targets are valid as the test step doesn't run them.
30+
check:
31+
name: Check
32+
runs-on: ${{ matrix.os }}
33+
strategy:
34+
matrix:
35+
os:
36+
- windows-latest
37+
- ubuntu-latest
38+
- macos-latest
39+
steps:
40+
- uses: actions/checkout@v2
41+
- name: Install Rust
42+
uses: dtolnay/rust-toolchain@stable
43+
with:
44+
toolchain: ${{ env.latest_version }}
45+
- uses: Swatinem/rust-cache@v2
46+
- run: cargo check --all-features --all-targets --workspace --lib --tests --profile "ci"
47+
48+
docs:
49+
name: Documentation
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v2
53+
- name: Install Rust
54+
uses: dtolnay/rust-toolchain@stable
55+
with:
56+
toolchain: ${{ env.latest_version }}
57+
- uses: Swatinem/rust-cache@v2
58+
- name: Build Documentation
59+
run: cargo doc --lib --no-deps --all-features --workspace
60+
env:
61+
RUSTDOCFLAGS: --cfg docsrs -Dwarnings
62+
63+
fmt:
64+
name: Rustfmt
65+
runs-on: ubuntu-latest
66+
steps:
67+
- uses: actions/checkout@v2
68+
- name: Install Rust
69+
uses: dtolnay/rust-toolchain@stable
70+
with:
71+
toolchain: ${{ env.latest_version }}
72+
components: rustfmt
73+
- uses: Swatinem/rust-cache@v2
74+
- run: cargo fmt --all -- --check
75+
76+
clippy:
77+
name: Clippy
78+
runs-on: ubuntu-latest
79+
steps:
80+
- uses: actions/checkout@v2
81+
- name: Install Rust
82+
uses: dtolnay/rust-toolchain@stable
83+
with:
84+
toolchain: ${{ env.latest_version }}
85+
components: clippy
86+
- uses: Swatinem/rust-cache@v2
87+
- run: cargo clippy --all-features --all-targets --workspace -- -D warnings
88+
89+
code_coverage:
90+
name: Code Coverage
91+
runs-on: ubuntu-latest
92+
container:
93+
image: xd009642/tarpaulin:develop-nightly
94+
options: --security-opt seccomp=unconfined
95+
steps:
96+
- name: Checkout repository
97+
uses: actions/checkout@v2
98+
99+
- name: Install Clang
100+
# Required for rocksdb
101+
run: apt-get update && apt-get install -y llvm llvm-dev clang
102+
103+
- name: Set libclang path
104+
run: echo "LIBCLANG_PATH=$(llvm-config --libdir)" >> $GITHUB_ENV
105+
106+
- name: Generate code coverage
107+
run: |
108+
cargo +nightly tarpaulin --config .tarpaulin.toml
109+
110+
- name: Upload to codecov.io
111+
uses: codecov/codecov-action@v2
112+
with:
113+
token: ${{secrets.CODECOV_TOKEN}}
114+
fail_ci_if_error: true

.tarpaulin.toml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
[coverage]
2+
exclude = [
3+
"example-util",
4+
"console",
5+
"console-views",
6+
"demand-lane",
7+
"demand-map-lane",
8+
"value-lane",
9+
"map-lane",
10+
"command-lane",
11+
"value-store",
12+
"map-store",
13+
"supply-lane",
14+
"value-lane-persistence",
15+
"map-lane-persistence",
16+
"value-store-persistence",
17+
"map-store-persistence",
18+
"event-downlink",
19+
"value-downlink",
20+
"map-downlink",
21+
"local-downlink",
22+
"http-lane",
23+
"transit",
24+
"transit-model",
25+
"tutorial-app",
26+
"tutorial-app-model",
27+
"tutorial-app-generator",
28+
"join_map",
29+
"join_value",
30+
"aggregations",
31+
"time_series",
32+
"swimos_form_derive",
33+
"swimos_agent_derive",
34+
"macro_utilities",
35+
]
36+
37+
workspace = true
38+
avoid-cfg-tarpaulin = true
39+
profile = "ci"
40+
ignore-tests = true
41+
output = ["xml"]
42+
timeout = "600s"
43+
all-features = true

azure-pipelines.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

ci/azure-code-coverage.yml

Lines changed: 0 additions & 55 deletions
This file was deleted.

ci/azure-install-rust.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

ci/azure-install-sccache.yml

Lines changed: 0 additions & 29 deletions
This file was deleted.

ci/azure-lint.yml

Lines changed: 0 additions & 39 deletions
This file was deleted.

ci/azure-test-stable.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)