-
-
Notifications
You must be signed in to change notification settings - Fork 37
133 lines (124 loc) · 3.39 KB
/
ci.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
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
- 'feat/**'
schedule:
- cron: '0 0 * * 0' # at midnight of each sunday
workflow_dispatch:
jobs:
skip-check:
permissions:
actions: write
contents: read
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
cancel_others: true
paths_ignore: '["*.md"]'
python:
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@just
- uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- run: just ci-python
rust:
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain:
- 1.81.0 # MSRV
- stable
- nightly
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@just
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- run: just ci-rust
cross-test:
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- macos-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@just
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: just ci-test
audit:
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-audit
- run: cargo audit -D warnings
mint-proxy-minio:
name: e2e (mint, s3s-proxy, minio)
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: docker pull minio/mint:edge
- run: docker pull minio/minio:latest
- run: just install s3s-proxy
- run: ./scripts/e2e-mint.sh
- run: ./scripts/report-mint.py /tmp/mint/log.json
- uses: actions/upload-artifact@v4
with:
name: mint-proxy-minio.logs
path: ./target/s3s-proxy.log
e2e-fs:
name: e2e (s3s-e2e, s3s-fs)
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: just install s3s-e2e
- run: just install s3s-fs
- run: ./scripts/e2e-fs.sh --filter '^Basic'
- uses: actions/upload-artifact@v4
with:
name: e2e-fs.logs
path: ./target/s3s-fs.log
e2e-minio:
name: e2e (s3s-e2e, minio)
needs: skip-check
if: needs.skip-check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: docker pull minio/minio:latest
- run: just install s3s-e2e
- run: ./scripts/e2e-minio.sh