-
Notifications
You must be signed in to change notification settings - Fork 232
133 lines (129 loc) · 4.43 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]
jobs:
lint-console:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: 8.3.0
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- name: Run prettier
run: |
cd arroyo-console
pnpm check
check-dockerfiles:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '3.1'
- name: Install dependencies
run: gem install toml-rb
- name: Check Dockerfiles
run: ruby docker/check_dockerfiles.rb
build-rust:
runs-on: ubuntu-latest-16-cores
env:
DATABASE_URL: "postgres://arroyo:arroyo@localhost:5432/arroyo"
DATABASE_USER: arroyo
DATABASE_PASSWORD: arroyo
DATABASE_HOST: localhost
DATABASE_NAME: arroyo
steps:
- name: Check out
uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Setup npm
uses: actions/setup-node@v3
- name: Install OpenAPI Generator
run: |
npm install @openapitools/openapi-generator-cli -g
openapi-generator-cli version
- name: Setup Postgres
run: |
sudo apt-get update
sudo apt-get install postgresql
sudo systemctl start postgresql
sudo -u postgres psql -c "CREATE USER arroyo WITH PASSWORD 'arroyo' SUPERUSER;"
sudo -u postgres createdb arroyo
pushd /tmp
wget https://github.com/rust-db/refinery/releases/download/0.8.7/refinery-0.8.7-x86_64-unknown-linux-musl.tar.gz
tar xvfz refinery*.tar.gz
mv /tmp/refinery*-musl/refinery /tmp
popd
/tmp/refinery migrate -e DATABASE_URL -p arroyo-api/migrations
- name: Set up cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git/db
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Install dependencies
run: |
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
sudo apt-get install -y cmake clang ruby unzip postgresql libsasl2-dev
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.8/protoc-21.8-linux-x86_64.zip
unzip protoc*.zip
sudo mv bin/protoc /usr/local/bin
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Install Kafka
run: |
wget --progress=dot --show-progress https://downloads.apache.org/kafka/3.5.0/kafka_2.12-3.5.0.tgz
tar xvfz kafka*.tgz
mkdir /tmp/kraft-combined-logs
kafka_*/bin/kafka-storage.sh format -t 9v5PspiySuWU2l5NjTgRuA -c kafka_*/config/kraft/server.properties
kafka_*/bin/kafka-server-start.sh -daemon kafka_*/config/kraft/server.properties
- name: Check Formatting
run: cargo fmt -- --check
- name: Build
run: cargo build --all-features
- name: Validate API
run: |
npm install --global ibm-openapi-validator
cd arroyo-openapi
lint-openapi --errors-only api-spec.json
- name: Test
run: cargo nextest run --all-features
- name: Integ
run: |
mkdir /tmp/arroyo-integ
RUST_LOG=info DISABLE_TELEMETRY=true OUTPUT_DIR=file:///tmp/arroyo-integ DEBUG=true target/debug/integ
build-console:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: 8.3.0
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- name: Build console
run: |
cd arroyo-console
pnpm build