-
Notifications
You must be signed in to change notification settings - Fork 65
133 lines (128 loc) · 3.67 KB
/
test.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: Test
on:
- push
- pull_request
jobs:
ruby-versions-inplace:
uses: ruby/actions/.github/workflows/ruby_versions.yml@master
with:
engine: cruby-jruby
min_version: 2.5
inplace:
needs: ruby-versions-inplace
name: "Inplace: ${{ matrix.ruby-version }} on ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
runs-on:
- ubuntu-latest
- macos-latest
- windows-latest
ruby-version: ${{ fromJson(needs.ruby-versions-inplace.outputs.versions) }}
exclude:
- {runs-on: macos-latest, ruby-version: 2.5}
# include:
# - runs-on: ubuntu-latest
# ruby-version: truffleruby
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Test
run: bundle exec rake test
frozen-string-literal:
name: frozen-string-literal
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ruby
bundler-cache: true
- name: Test
run: bundle exec rake test RUBYOPT="--enable-frozen-string-literal"
ruby-versions-gems:
uses: ruby/actions/.github/workflows/ruby_versions.yml@master
with:
engine: cruby-jruby
min_version: 2.6 # REXML is a default gem since Ruby 2.6
gem:
needs: ruby-versions-gems
name: "Gem: ${{ matrix.ruby-version }} on ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
runs-on:
- ubuntu-latest
- macos-latest
- windows-latest
ruby-version: ${{ fromJson(needs.ruby-versions-gems.outputs.versions) }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install as gem
run: |
rake install
- name: Install test dependencies on non-Windows
if: matrix.runs-on != 'windows-latest'
run: |
for gem in $(ruby -e 'puts ARGF.read[/^group :test do(.*)^end/m, 1].scan(/"(.+?)"/)' Gemfile); do
gem install ${gem}
done
- name: Install test dependencies on Windows
if: matrix.runs-on == 'windows-latest'
run: |
gem install test-unit
gem install test-unit-ruby-core
- name: Test
run: |
ruby -run -e mkdir -- tmp
ruby -run -e cp -- -p -r test tmp
cd tmp
ruby test/run.rb
document:
name: "Document"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ruby
- name: Install dependencies
run: |
bundle install
- name: Build document
run: |
bundle exec rake warning:error rdoc
- uses: actions/checkout@v4
if: |
github.event_name == 'push'
with:
ref: gh-pages
path: gh-pages
- name: Deploy
if: |
github.event_name == 'push'
run: |
rm html/created.rid
touch html/.nojekyll
cd gh-pages
rsync \
-a \
--delete \
--exclude "/.git/" \
../html/ \
./
if [ "$(git status --porcelain)" != "" ]; then
git add --all
git config user.name github-actions
git config user.email [email protected]
git commit -m "Generate (${GITHUB_SHA})"
git push
fi