Skip to content

Commit 7d3915e

Browse files
committed
chore: create Github CI config
1 parent cd90a71 commit 7d3915e

File tree

3 files changed

+113
-0
lines changed

3 files changed

+113
-0
lines changed

.github/actions/appraisal-install.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Appraisal install
2+
inputs:
3+
appraisal:
4+
description: "Appraisal version to install"
5+
required: true
6+
7+
runs:
8+
using: "composite"
9+
steps:
10+
- name: Copy lockfile
11+
run: bundle exec ${{ inputs.appraisal }} "cp $BUNDLE_GEMFILE.lock current_appraisal.gemfile.lock"
12+
- name: Appraisal package cache
13+
uses: actions/cache@v4
14+
with:
15+
key: v6-gem-cache-${{ runner.os }}-${{ github.ref }}-${{ hashFiles('current_appraisal.gemfile.lock') }}
16+
path: vendor/bundle
17+
restore-keys: |
18+
v6-gem-cache-${{ runner.os }}-${{ github.ref }}-
19+
v6-gem-cache-${{ runner.os }}-
20+
- name: Install appraisal dependencies
21+
run: bundle exec appraisal ${{ inputs.appraisal }} bundle install --jobs=1 --retry=3 --path=../vendor/bundle

.github/workflows/ci.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Main
2+
on: [push, pull_request]
3+
jobs:
4+
ruby-lint:
5+
runs-on: ubuntu-latest
6+
env:
7+
BUNDLE_APP_CONFIG: .bundle
8+
steps:
9+
- uses: actions/checkout@v4
10+
- uses: ruby/setup-ruby@v1
11+
with:
12+
ruby-version: '3.2'
13+
bundler-cache: true
14+
- run: bundle exec rubocop
15+
ruby-test:
16+
runs-on: ubuntu-latest
17+
env:
18+
BUNDLE_APP_CONFIG: .bundle
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
appraisal: ['graphql-1.10', 'graphql-1.11', 'graphql-1.12', 'graphql-1.13', 'graphql-2.0']
23+
ruby: ['2.7', '3.0', '3.1', '3.2']
24+
exclude:
25+
- appraisal: 'graphql-1.10'
26+
ruby: '3.2'
27+
- appraisal: 'graphql-1.11'
28+
ruby: '3.2'
29+
- appraisal: 'graphql-1.12'
30+
ruby: '3.2'
31+
steps:
32+
- uses: actions/checkout@v4
33+
- uses: ruby/setup-ruby@v1
34+
with:
35+
ruby-version: ${{ matrix.ruby }}
36+
bundler-cache: true
37+
- uses: ./.github/actions/appraisal-install
38+
with:
39+
appraisal: ${{ matrix.appraisal }}
40+
- run: bundle config list
41+
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle config list
42+
- run: bundle exec appraisal ${{ matrix.appraisal }} rake
43+
44+
integration-tests:
45+
runs-on: ubuntu-latest
46+
env:
47+
BUNDLE_APP_CONFIG: .bundle
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
appraisal: ['graphql-1.10', 'graphql-1.11', 'graphql-1.12', 'graphql-1.13', 'graphql-2.0']
52+
ruby: ['2.7', '3.0', '3.1', '3.2']
53+
exclude:
54+
- appraisal: 'graphql-1.10'
55+
ruby: '3.2'
56+
- appraisal: 'graphql-1.11'
57+
ruby: '3.2'
58+
- appraisal: 'graphql-1.12'
59+
ruby: '3.2'
60+
steps:
61+
- uses: actions/checkout@v4
62+
- uses: ruby/setup-ruby@v1
63+
with:
64+
ruby-version: ${{ matrix.ruby }}
65+
bundler-cache: true
66+
- uses: ./.github/actions/appraisal-install
67+
with:
68+
appraisal: ${{ matrix.appraisal }}
69+
- name: Run install
70+
uses: borales/actions-yarn@v4
71+
with:
72+
cmd: install
73+
- run: bundle exec appraisal ${{ matrix.appraisal }} yarn test
74+
- run: yarn lint
75+
76+
release:
77+
runs-on: ubuntu-latest
78+
needs: [ruby-lint, ruby-test, integration-tests]
79+
env:
80+
BUNDLE_APP_CONFIG: .bundle
81+
steps:
82+
- uses: actions/checkout@v4
83+
- uses: ruby/setup-ruby@v1
84+
with:
85+
ruby-version: '3.2'
86+
bundler-cache: true
87+
- name: Run install
88+
uses: borales/actions-yarn@v4
89+
with:
90+
cmd: install
91+
- run: npx semantic-release

release.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = {
1313
'semantic-release-rubygem',
1414
{
1515
updateGemfileLock: 'bundle install',
16+
gemPublish: false
1617
},
1718
],
1819
[

0 commit comments

Comments
 (0)