-
-
Notifications
You must be signed in to change notification settings - Fork 5
143 lines (135 loc) · 5.27 KB
/
tests.yml
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
on: [push, pull_request]
name: Continuous integration
permissions:
contents: read
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@cba0d00b1fc9a034e1e642ea0f1103c282990604
with:
egress-policy: block
allowed-endpoints: >
artifactcache.actions.githubusercontent.com:443
frsnacprodeus2file1.blob.core.windows.net:443
github.com:443
api.github.com:443
gitlab.com:443
crates.io:443
index.crates.io:443
static.crates.io:443
static.rust-lang.org:443
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af
with:
profile: minimal
toolchain: nightly
override: true
- uses: Swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b
- uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505
with:
command: check
test:
name: Coverage
runs-on: ubuntu-latest
container:
image: rust:latest
options: --user root
# Service containers to run with `runner-job`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: erooster
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
steps:
- name: Harden Runner
uses: step-security/harden-runner@cba0d00b1fc9a034e1e642ea0f1103c282990604
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Install Rust
run: rustup toolchain install nightly --component llvm-tools-preview
- uses: Swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b
- name: Install opendkim
run: apt update && apt install -y opendkim-tools
- name: Generate dkim-key
run: |
mkdir -p /etc/erooster/keys
cd /etc/erooster/keys
opendkim-genkey --domain=example.com --subdomains --testmode
- name: Setup Config
run: |
echo 'tls:' > /etc/erooster/config.yml
echo ' key_path: ""' >> /etc/erooster/config.yml
echo ' cert_path: ""' >> /etc/erooster/config.yml
echo 'mail:' >> /etc/erooster/config.yml
echo ' maildir_folders: "./maildir"' >> /etc/erooster/config.yml
echo ' hostname: "localhost"' >> /etc/erooster/config.yml
echo ' displayname: Erooster' >> /etc/erooster/config.yml
echo ' dkim_key_path: /etc/erooster/keys/default.private' >> /etc/erooster/config.yml
echo ' dkim_key_selector: default' >> /etc/erooster/config.yml
echo 'database:' >> /etc/erooster/config.yml
echo ' postgres_url: "postgres://postgres:postgres@postgres/erooster"' >> /etc/erooster/config.yml
echo 'webserver:' >> /etc/erooster/config.yml
echo ' port: 80' >> /etc/erooster/config.yml
echo ' tls: false' >> /etc/erooster/config.yml
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@5513d407a6fd2d2875c011ea47e5c2a6bff9fbf2
- name: Generate code coverage
run: cargo +nightly llvm-cov --all-features --workspace --html
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: coverage-report
path: target/llvm-cov/html/
- name: Generate code coverage for codecov
run: cargo +nightly llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
with:
files: lcov.info
fail_ci_if_error: false
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@cba0d00b1fc9a034e1e642ea0f1103c282990604
with:
egress-policy: block
allowed-endpoints: >
artifactcache.actions.githubusercontent.com:443
frsnacprodeus2file1.blob.core.windows.net:443
github.com:443
static.rust-lang.org:443
api.github.com:443
gitlab.com:443
crates.io:443
index.crates.io:443
static.crates.io:443
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af
with:
profile: minimal
toolchain: nightly
override: true
- run: rustup component add rustfmt
- uses: Swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b
- uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505
with:
command: fmt
args: --all -- --check