-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (95 loc) · 2.68 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
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
name: main CI workflow
permissions: read-all
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
branches: [main]
env:
WAST_TARGET: wasm32-wasip2
FLUVIO_URL: https://hub.infinyon.cloud/install/install.sh
FLUVIO_CHANNEL: stable
SDF_VERSION: sdf-beta5
jobs:
build-guest:
name: Build Guest
runs-on: ubuntu-latest
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install wasm target
run: |
rustup target add ${{ env.WAST_TARGET }}
- name: Setup Rust Cache
uses: Swatinem/rust-cache@v2
timeout-minutes: 10
- name: Build
timeout-minutes: 40
run: make build-guest
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install wasm target
run: |
rustup target add ${{ env.WAST_TARGET }}
- name: Setup Rust Cache
uses: Swatinem/rust-cache@v2
timeout-minutes: 10
- name: Build HTTP Server
run: make build-http
- name: Start HTTP Server
run: make run-http
- name: Install FVM and Fluvio
timeout-minutes: 10
run: |
curl -fsS ${{ env.FLUVIO_URL }} | bash
echo "$HOME/.fvm/bin" >> $GITHUB_PATH
- name: Install SDF
run: |
fvm install ${{ ENV.SDF_VERSION }}
echo "$HOME/.fluvio/bin" >> $GITHUB_PATH
- name: Test SDF
run: sdf version
- name: Install Local Fluvio cluster
timeout-minutes: 3
run: fluvio cluster start
- name: Start dataflow
run: |
make -C e2e-test run-ci
sleep 120
- name: Test
run: |
cat /tmp/sdf.log
make validate-dataflow
# To satisfy the merge queue check
done:
name: Done
needs:
- build-guest
- e2e-test
runs-on: ubuntu-latest
if: always()
steps:
- name: Dump needs context
env:
CONTEXT: ${{ toJson(needs) }}
run: |
echo -e "\033[33;1;4mDump context\033[0m"
echo -e "$CONTEXT\n"
- name: Report failure on cancellation
if: ${{ contains(needs.*.result, 'cancelled') || cancelled() }}
run: exit 1
- name: Failing test and build
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1
- name: Successful test and build
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0