-
Notifications
You must be signed in to change notification settings - Fork 7
133 lines (100 loc) · 2.72 KB
/
build.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: build
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby
bundler-cache: true
- name: Lint
run: bundle exec rake rubocop
spec:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
ruby-version:
- '3.0'
- '3.1'
- '3.2'
- '3.3'
- jruby
- truffleruby
- truffleruby+graalvm
exclude:
- os: windows-latest
ruby-version: '3.3'
- os: windows-latest
ruby-version: truffleruby
- os: windows-latest
ruby-version: truffleruby+graalvm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Compile
run: bundle exec rake compile
- name: Install
run: rake -f -r bundler/gem_tasks install
- name: Spec
run: bundle exec rake spec
spec-musl:
name: spec (alpine-latest, ${{ matrix.ruby-version }})
runs-on: ubuntu-latest
container:
image: docker.io/library/ruby:${{ matrix.ruby-version }}-alpine
env:
PROTOC_BIN: /usr/bin/protoc
strategy:
fail-fast: false
matrix:
ruby-version:
- '3.0'
- '3.1'
- '3.2'
- '3.3-rc'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: apk add alpine-sdk protoc
- name: Bundle
run: bundle install
- name: Compile
run: bundle exec rake compile
- name: Install
run: rake -f -r bundler/gem_tasks install
- name: Spec
run: bundle exec rake spec
release:
if: github.event.repository.fork == false && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
needs: [lint, spec, spec-musl]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.DEPLOY_KEY }}
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby
- name: Release
run: |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git config user.name github-actions[bot]
rake -f -r bundler/gem_tasks release gem_push=no