File: ci.yaml

package info (click to toggle)
ruby-graphql 2.5.19-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 13,868 kB
  • sloc: ruby: 80,420; ansic: 1,808; yacc: 845; javascript: 480; makefile: 6
file content (153 lines) | stat: -rw-r--r-- 4,730 bytes parent folder | download
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: CI Suite
on:
  - pull_request

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.4
        bundler-cache: true
    - run: bundle exec rake rubocop
  system_tests:
    runs-on: ubuntu-latest
    steps:
    - uses: shogo82148/actions-setup-redis@v1
      with:
        redis-version: "7.x"
    - run: redis-cli ping
    - uses: actions/checkout@v6
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.4
        bundler-cache: true
      env:
        BUNDLE_GEMS__GRAPHQL__PRO: ${{ secrets.BUNDLE_GEMS__GRAPHQL__PRO }}
        BUNDLE_GEMFILE: gemfiles/rails_master.gemfile
    - run: bin/rails test:all
      working-directory: ./spec/dummy
      env:
        BUNDLE_GEMS__GRAPHQL__PRO: ${{ secrets.BUNDLE_GEMS__GRAPHQL__PRO }}
        BUNDLE_GEMFILE: ../../gemfiles/rails_master.gemfile
  # Some coverage goals of these tests:
  # - Test once without Rails at all
  # - Test postgres, to make sure that the ActiveRecord
  #   stuff works on that (as well as the default sqlite)
  # - Test mongoid -- and several versions, since they're quite different
  # - Run the JS unit tests once
  # - Test each major version of Rails we support
  # - Test the min/max minor Ruby version we support (and others?)
  test:
    strategy:
      fail-fast: false
      matrix:
        include:
          - gemfile: Gemfile
            ruby: head
          - gemfile: Gemfile
            ruby: 2.7 # lowest supported version
          - gemfile: gemfiles/rails_8.0.gemfile
            ruby: 3.3
            graphql_reject_numbers_followed_by_names: 1
          - gemfile: gemfiles/rails_8.1.gemfile
            ruby: 4.0
            graphql_reject_numbers_followed_by_names: 1
            redis: 1
          - gemfile: gemfiles/rails_master.gemfile
            ruby: 3.4
            graphql_reject_numbers_followed_by_names: 1
            isolation_level_fiber: 1
            redis: 1
    runs-on: ubuntu-latest
    steps:
    - run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV
    - run: echo GRAPHQL_REJECT_NUMBERS_FOLLOWED_BY_NAMES=1 > $GITHUB_ENV
      if: ${{ !!matrix.graphql_reject_numbers_followed_by_names }}
    - run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV
      if: ${{ !!matrix.isolation_level_fiber }}
    - uses: shogo82148/actions-setup-redis@v1
      with:
        redis-version: "7.x"
      if: ${{ !!matrix.redis }}
    - run: redis-cli ping
      if: ${{ !!matrix.redis }}
    - uses: actions/checkout@v6
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        bundler-cache: true
    - run: bundle exec rake compile
    - run: bundle exec rake test
  javascript_test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
      with:
        node-version: '21'
    - run: npm ci
      working-directory: ./javascript_client
    - run: npm test
      working-directory: ./javascript_client
  postgres_test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
        - gemfile: gemfiles/rails_master.gemfile
          ruby: 3.3
          isolation_level_fiber: 1
        - gemfile: gemfiles/rails_7.2_postgresql.gemfile
          ruby: 3.3
    services:
      postgres:
        image: postgres:latest
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: postgres
        ports:
        - 5432:5432
        # needed because the postgres container does not provide a healthcheck
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
    - run: echo BUNDLE_GEMFILE='' > $GITHUB_ENV
    - run: echo DATABASE='POSTGRESQL' > $GITHUB_ENV
    - run: echo PGPASSWORD='postgres' > $GITHUB_ENV
    - run: echo GRAPHQL_CPARSER=1 > $GITHUB_ENV
    - run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV
      if: ${{ !!matrix.isolation_level_fiber }}
    - uses: actions/checkout@v6
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: "3.3"
        bundler-cache: true
    - run: bundle exec rake compile test
  mongodb_test:
    strategy:
      fail-fast: false
      matrix:
        gemfile:
          - gemfiles/mongoid_9.gemfile
          - gemfiles/mongoid_8.gemfile
    runs-on: ubuntu-latest
    services:
      mongodb:
        image: mongo
        ports:
        - 27017:27017
    steps:
    - run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV
    - uses: actions/checkout@v6
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.4
        bundler-cache: true
    - run: bundle exec rake compile test