7
7
paths : [ rails_graphql_federation/reviews/** ]
8
8
workflow_dispatch :
9
9
10
+ env :
11
+ rails_app_root : rails_graphql_federation/reviews
12
+ CI : true
13
+
10
14
jobs :
11
15
scan_ruby :
12
16
runs-on : ubuntu-latest
@@ -18,13 +22,12 @@ jobs:
18
22
- name : Set up Ruby
19
23
uses : ruby/setup-ruby@v1
20
24
with :
21
- working-directory : rails_graphql_federation/reviews
22
- ruby-version : .ruby-version
25
+ working-directory : ${{ env.rails_app_root }}
23
26
bundler-cache : true
24
27
25
28
- name : Scan for common Rails security vulnerabilities using static analysis
26
29
run : |
27
- cd rails_graphql_federation/reviews
30
+ cd ${{ env.rails_app_root }}
28
31
./bin/brakeman --no-pager
29
32
30
33
lint :
@@ -37,11 +40,58 @@ jobs:
37
40
- name : Set up Ruby
38
41
uses : ruby/setup-ruby@v1
39
42
with :
40
- working-directory : rails_graphql_federation/reviews
41
- ruby-version : .ruby-version
43
+ working-directory : ${{ env.rails_app_root }}
42
44
bundler-cache : true
43
45
44
46
- name : Lint code for consistent style
45
47
run : |
46
- cd rails_graphql_federation/reviews
48
+ cd ${{ env.rails_app_root }}
47
49
./bin/rubocop -f github
50
+
51
+ build :
52
+
53
+ runs-on : ubuntu-latest
54
+ permissions :
55
+ contents : read
56
+
57
+ services :
58
+ kafka :
59
+ image : bitnami/kafka:latest
60
+ env :
61
+ KAFKA_ENABLE_KRAFT : yes
62
+ KAFKA_CFG_PROCESS_ROLES : broker,controller
63
+ KAFKA_CFG_CONTROLLER_LISTENER_NAMES : CONTROLLER
64
+ KAFKA_CFG_LISTENERS : PLAINTEXT://:9092,CONTROLLER://:9093
65
+ KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP : CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
66
+ KAFKA_CFG_ADVERTISED_LISTENERS : PLAINTEXT://127.0.0.1:9092
67
+ KAFKA_CFG_NODE_ID : 1
68
+ KAFKA_CFG_CONTROLLER_QUORUM_VOTERS :
[email protected] :9093
69
+ ALLOW_PLAINTEXT_LISTENER : yes
70
+ KAFKA_CFG_NUM_PARTITIONS : 4
71
+ KAFKA_CFG_OFFSETS_TOPIC_NUM_PARTITIONS : 1
72
+ KAFKA_CFG_TRANSACTION_STATE_LOG_NUM_PARTITIONS : 1
73
+ KAFKA_CFG_LOG_RETENTION_BYTES : -1
74
+ KAFKA_CFG_LOG_RETENTION_HOURS : -1
75
+ ports :
76
+ - " 9092:9092"
77
+
78
+ steps :
79
+ - name : Checkout the repo
80
+ uses : actions/checkout@v4
81
+
82
+ - name : Set up Ruby
83
+ uses : ruby/setup-ruby@v1
84
+ with :
85
+ working-directory : ${{ env.rails_app_root }}
86
+ bundler-cache : true
87
+
88
+ - name : Run RSpec
89
+ run : |
90
+ cd ${{ env.rails_app_root }}
91
+ ./bin/rspec --format json --out tmp/rspec_results.json
92
+
93
+ - name : Generate RSpec report
94
+ uses : SonicGarden/rspec-report-action@v5
95
+ with :
96
+ json-path : ${{ env.rails_app_root }}/tmp/rspec_results.json
97
+ if : always()
0 commit comments