-
Notifications
You must be signed in to change notification settings - Fork 242
136 lines (133 loc) · 3.87 KB
/
ruby.yml
File metadata and controls
136 lines (133 loc) · 3.87 KB
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
134
135
name: Ruby
on:
push:
branches:
- master
pull_request: {}
merge_group: {}
jobs:
test:
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
ruby: ['3.1', '3.2', '3.3', '3.4', head]
rubyopt: [""]
job:
- test
include:
- ruby: head
job: stdlib_test rubocop
- ruby: "3.4"
job: stdlib_test
- ruby: "3.4"
job: test
rubyopt: "--enable-frozen-string-literal"
- ruby: "3.4"
job: stdlib_test
rubyopt: "--enable-frozen-string-literal"
- ruby: "3.4"
job: lexer templates compile confirm_lexer confirm_templates
- ruby: "3.4"
job: rubocop validate test_doc build test_generate_stdlib raap
- ruby: "3.4"
job: typecheck_test
env:
RANDOMIZE_STDLIB_TEST_ORDER: "true"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Set up permission
run: chmod -R o-w /opt/hostedtoolcache/Ruby
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libdb-dev curl autoconf automake m4 libtool python3
- name: Install Re2c
if: ${{ contains(matrix.job, 'lexer') }}
run: |
cd /tmp
curl -L https://github.com/skvadrik/re2c/archive/refs/tags/3.1.tar.gz > re2c-3.1.tar.gz
tar xf re2c-3.1.tar.gz
cd re2c-3.1
autoreconf -i -W all
./configure
make
sudo make install
- name: Update rubygems & bundler
run: |
ruby -v
gem update --system
- name: bundle config set with
run: |
echo "NO_MINITEST=true" >> $GITHUB_ENV
bundle config set --local without 'minitest'
if: ${{ contains(matrix.ruby, 'head') }}
- name: Skip installing type checkers
if: ${{ ! contains(matrix.job, 'typecheck_test') }}
run: |
bundle config set without 'typecheck_test'
- name: bin/setup
run: |
bin/setup
- name: Run test
run: |
bundle exec rake ${{ matrix.job }}
valgrind:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Set up permission
run: chmod -R o-w /opt/hostedtoolcache/Ruby
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libdb-dev curl autoconf automake m4 libtool python3 valgrind
- name: Update rubygems & bundler
run: |
ruby -v
gem update --system
- name: bin/setup
run: |
bin/setup
- run: bundle exec rake test:valgrind
env:
RUBY_FREE_AT_EXIT: 1
C99_compile:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
ruby: ['3.4', head]
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install ruby-build
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Update rubygems & bundler
run: |
ruby -v
gem update --system
- name: clang version
run: clang --version
- name: bin/setup
run: |
bin/setup
- run: bundle exec rake clean compile_c99