-
-
Notifications
You must be signed in to change notification settings - Fork 8
132 lines (109 loc) · 3.01 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
name: ci
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
schedule:
- cron: '0 1 * * *'
env:
BUNDLE_RETRY: 6
BUNDLE_JOBS: 4
jobs:
specs:
runs-on: ubuntu-latest
needs: diffend
strategy:
fail-fast: false
matrix:
ruby:
- '3.4.0-preview2'
- '3.3'
- '3.2'
- '3.1'
include:
- ruby: '3.3'
coverage: 'true'
steps:
- uses: actions/checkout@v4
- name: Install package dependencies
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
- name: Start Kafka with docker compose
run: |
docker compose up -d || (sleep 5 && docker compose up -d)
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{matrix.ruby}}
bundler-cache: true
bundler: 'latest'
- name: Install latest bundler
run: |
gem install bundler --no-document
gem update --system --no-document
bundle config set without 'tools benchmarks docs'
- name: Bundle install
run: |
bundle config set without development
bundle install --jobs 4 --retry 3
- name: Wait for Kafka
run: |
bundle exec bin/wait_for_kafka
- name: Run all tests
env:
GITHUB_COVERAGE: ${{matrix.coverage}}
KARAFKA_PRO_LICENSE_TOKEN: ${{ secrets.KARAFKA_PRO_LICENSE_TOKEN }}
run: bin/rspecs
diffend:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true
- name: Install Diffend plugin
run: bundle plugin install diffend
- name: Bundle Secure
run: bundle secure
coditsu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run Coditsu
env:
CODITSU_API_KEY: ${{ secrets.CODITSU_API_KEY }}
CODITSU_API_SECRET: ${{ secrets.CODITSU_API_SECRET }}
run: \curl -sSL https://api.coditsu.io/run/ci | bash
assets:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '17'
- name: Cache node modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm install
- name: Build development assets
run: ./bin/build_assets
- name: Build release assets
run: KARAFKA_RELEASE=true ./bin/build_assets