-
Notifications
You must be signed in to change notification settings - Fork 127
65 lines (59 loc) · 2.18 KB
/
protocol.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
name: Protocol
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
# GITHUB_PULL_REQUEST_URL are used for commenting test reports in Launchable Github App.
# https://github.com/launchableinc/cli/blob/v1.80.1/launchable/utils/link.py#L42
GITHUB_PULL_REQUEST_URL: ${{ github.event.pull_request.html_url }}
# The following envs are necessary in Launchable tokenless authentication.
# https://github.com/launchableinc/cli/blob/v1.80.1/launchable/utils/authentication.py#L20
LAUNCHABLE_ORGANIZATION: "ruby"
LAUNCHABLE_WORKSPACE: "debug"
# https://github.com/launchableinc/cli/blob/v1.80.1/launchable/utils/authentication.py#L71
GITHUB_PR_HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
ruby-version: ["2.7", "3.0", "3.1", "3.2", "3.3", "head", "debug"]
steps:
- uses: actions/checkout@v4
with:
# Set fetch-depth: 0 so that Launchable can receive commits information.
fetch-depth: 0
# Launchable requires Python and Java
# https://www.launchableinc.com/docs/resources/cli-reference/
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Set up JDK 1.8
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '8'
# Setup Launchable
- name: Launchable - install command
run: pip install launchable
- name: Launchable - verify
run: launchable verify
- name: Launchable - record build
run: launchable record build --name ${GITHUB_PR_HEAD_SHA}
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Run tests
run: |
bundle exec rake clobber
bundle exec rake compile
TESTOPTS="--runner=junitxml --junitxml-output-file=protocol.xml" bundle exec rake test_protocol
- name: Launchable - record tests
run: launchable record tests --flavor test=protocol --flavor os=ubuntu-latest --flavor ruby=${{ matrix.ruby-version }} file protocol.xml
if: always()