elastic-apm 4.7.3 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.exclude.yml +27 -82
  3. data/.ci/.framework.yml +1 -4
  4. data/.ci/.ruby.yml +1 -1
  5. data/.ci/updatecli/values.d/apm-data-spec.yml +1 -0
  6. data/.ci/updatecli/values.d/apm-gherkin.yml +1 -0
  7. data/.ci/updatecli/values.d/apm-json-specs.yml +1 -0
  8. data/.ci/updatecli/values.d/scm.yml +10 -0
  9. data/.ci/updatecli/values.d/update-compose.yml +3 -0
  10. data/.github/CODEOWNERS +1 -0
  11. data/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  12. data/.github/dependabot.yml +22 -19
  13. data/.github/workflows/README.md +1 -2
  14. data/.github/workflows/addToProject.yml +43 -12
  15. data/.github/workflows/ci.yml +6 -6
  16. data/.github/workflows/docs-build.yml +16 -0
  17. data/.github/workflows/docs-deploy.yml +16 -0
  18. data/.github/workflows/docs-preview-cleanup.yml +12 -0
  19. data/.github/workflows/github-commands-comment.yml +18 -0
  20. data/.github/workflows/microbenchmark.yml +7 -24
  21. data/.github/workflows/release.yml +40 -24
  22. data/.github/workflows/run-matrix.yml +21 -12
  23. data/.github/workflows/test-reporter.yml +4 -3
  24. data/.github/workflows/updatecli.yml +45 -13
  25. data/Dockerfile +38 -12
  26. data/Gemfile +38 -3
  27. data/bin/dev +16 -4
  28. data/bin/run-bdd +2 -2
  29. data/docker-compose.yml +12 -5
  30. data/docs/docset.yml +11 -0
  31. data/docs/reference/advanced-topics.md +18 -0
  32. data/docs/reference/api-reference.md +428 -0
  33. data/docs/reference/configuration.md +751 -0
  34. data/docs/{context.asciidoc → reference/context.md} +27 -21
  35. data/docs/reference/custom-instrumentation.md +78 -0
  36. data/docs/{getting-started-rack.asciidoc → reference/getting-started-rack.md} +27 -30
  37. data/docs/reference/getting-started-rails.md +33 -0
  38. data/docs/reference/graphql.md +27 -0
  39. data/docs/reference/index.md +33 -0
  40. data/docs/{logs.asciidoc → reference/logs.md} +45 -57
  41. data/docs/reference/metrics.md +205 -0
  42. data/docs/reference/opentracing-api.md +76 -0
  43. data/docs/reference/performance-tuning.md +77 -0
  44. data/docs/reference/set-up-apm-ruby-agent.md +22 -0
  45. data/docs/reference/supported-technologies.md +134 -0
  46. data/docs/reference/toc.yml +24 -0
  47. data/docs/reference/upgrading.md +25 -0
  48. data/docs/release-notes/index.md +182 -0
  49. data/docs/release-notes/known-issues.md +29 -0
  50. data/docs/release-notes/toc.yml +3 -0
  51. data/elastic-apm.gemspec +2 -2
  52. data/lib/elastic_apm/central_config.rb +1 -1
  53. data/lib/elastic_apm/config/round_float_hash_value.rb +35 -0
  54. data/lib/elastic_apm/config.rb +2 -0
  55. data/lib/elastic_apm/context_builder.rb +5 -2
  56. data/lib/elastic_apm/instrumenter.rb +23 -3
  57. data/lib/elastic_apm/spies/http.rb +1 -1
  58. data/lib/elastic_apm/spies/sidekiq.rb +2 -1
  59. data/lib/elastic_apm/stacktrace_builder.rb +3 -3
  60. data/lib/elastic_apm/transaction.rb +11 -4
  61. data/lib/elastic_apm/version.rb +1 -1
  62. data/updatecli-compose.yaml +23 -0
  63. metadata +49 -37
  64. data/.ci/snapshoty.yml +0 -33
  65. data/.ci/updatecli/updatecli.d/update-gherkin-specs.yml +0 -84
  66. data/.ci/updatecli/updatecli.d/update-json-specs.yml +0 -84
  67. data/.ci/updatecli/updatecli.d/update-specs.yml +0 -86
  68. data/.ci/updatecli/values.yml +0 -14
  69. data/.github/workflows/coverage-reporter.yml +0 -34
  70. data/.github/workflows/opentelemetry.yml +0 -22
  71. data/.github/workflows/snapshoty.yml +0 -35
  72. data/CHANGELOG.asciidoc +0 -990
  73. data/SECURITY.md +0 -7
  74. data/docs/advanced.asciidoc +0 -14
  75. data/docs/api.asciidoc +0 -487
  76. data/docs/configuration.asciidoc +0 -889
  77. data/docs/custom-instrumentation.asciidoc +0 -80
  78. data/docs/debugging.asciidoc +0 -44
  79. data/docs/getting-started-rails.asciidoc +0 -30
  80. data/docs/graphql.asciidoc +0 -23
  81. data/docs/index.asciidoc +0 -38
  82. data/docs/introduction.asciidoc +0 -36
  83. data/docs/metrics.asciidoc +0 -235
  84. data/docs/opentracing.asciidoc +0 -94
  85. data/docs/performance-tuning.asciidoc +0 -106
  86. data/docs/redirects.asciidoc +0 -9
  87. data/docs/release-notes.asciidoc +0 -15
  88. data/docs/set-up.asciidoc +0 -19
  89. data/docs/supported-technologies.asciidoc +0 -157
  90. data/docs/upgrading.asciidoc +0 -18
  91. /data/docs/{images → reference/images}/dynamic-config.svg +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fb7f8389ec374ccb57a8496ba24e365006ce44590d4ab064763133c8129cdf4
4
- data.tar.gz: 4010d4aeaea7c13d15cfd6a0fce757ab1d7477b5be7a72d350012a07a6b473a6
3
+ metadata.gz: 31edb9bba2adf03fbf15be845cbf4b9612b9d53821cb628d0e58b8433a913645
4
+ data.tar.gz: 7d2ea706462aa65a194292d6014618ed869468e30269de1d1c58b6b744e7a89b
5
5
  SHA512:
6
- metadata.gz: 5e0a026ec99b9ccd90c2f17ce4929cc583dc331582a9ad5e64b71410c0099da6f8478d3306c72d8cd9031d8c728f86d663325fdafe16381dd15a0302317fd747
7
- data.tar.gz: 3df0f2d41ab038328f30ddbf7e88e2a3c0708004b64de06df165bfb073dde2bf37a546cf4b6a3c3f7c5971ff27698094cf48f480df96dff2c639b3b6986d47af
6
+ metadata.gz: 6115cc9c39a67366f472436d6f0e22df08518915581361d2ee5999846d0a65238bdfe79e9522f38b1d19312642c09bc1bb5abb7a021efc3b138d24525fb53ccd
7
+ data.tar.gz: 250ece59f0403da4844ca5108559a1a434cceec6dbb2fb5dfb3113d6f466553f5dbf97e820cdeb4b2c6f05de67891521174a1f6f6a32aedd9ee8fd9ffc50032c
data/.ci/.exclude.yml CHANGED
@@ -2,19 +2,15 @@ exclude:
2
2
  # Ruby 2.4
3
3
  # Only test on rails-4.2, sinatra-1.4
4
4
  - VERSION: ruby:2.4
5
- FRAMEWORK: rails-7.0
5
+ FRAMEWORK: rails-7.2
6
6
  - VERSION: ruby:2.4
7
7
  FRAMEWORK: rails-6.1
8
- - VERSION: ruby:2.4
9
- FRAMEWORK: rails-6.0
10
8
  - VERSION: ruby:2.4
11
9
  FRAMEWORK: rails-5.2
12
10
  - VERSION: ruby:2.4
13
11
  FRAMEWORK: sinatra-2.2
14
12
  - VERSION: ruby:2.4
15
13
  FRAMEWORK: grape-1.6
16
- - VERSION: ruby:2.4
17
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.0
18
14
  - VERSION: ruby:2.4
19
15
  FRAMEWORK: rails-main
20
16
  - VERSION: ruby:2.4
@@ -24,9 +20,9 @@ exclude:
24
20
 
25
21
  # rails-4.2 exclusions
26
22
  # Only test on ruby 2.4
27
- - VERSION: ruby:3.1
23
+ - VERSION: ruby:3.4
28
24
  FRAMEWORK: rails-4.2
29
- - VERSION: ruby:3.0
25
+ - VERSION: ruby:3.1
30
26
  FRAMEWORK: rails-4.2
31
27
  - VERSION: ruby:2.7
32
28
  FRAMEWORK: rails-4.2
@@ -43,8 +39,6 @@ exclude:
43
39
  # sinatra-1.4 exclusions
44
40
  - VERSION: ruby:3.1
45
41
  FRAMEWORK: sinatra-1.4
46
- - VERSION: ruby:3.0
47
- FRAMEWORK: sinatra-1.4
48
42
  - VERSION: ruby:2.7
49
43
  FRAMEWORK: sinatra-1.4
50
44
  - VERSION: jruby:9.2
@@ -56,22 +50,18 @@ exclude:
56
50
  - VERSION: elasticobservability/jruby:9.2-8-jdk
57
51
  FRAMEWORK: sinatra-1.4
58
52
 
59
- # rails-6.0 and rails-6.1 exclusions
53
+ # rails-6.1 and rails 7.0 exclusions
60
54
  # Don't test on ruby 2.4
61
55
  - VERSION: ruby:2.4
62
56
  FRAMEWORK: rails-6.1
63
57
  - VERSION: ruby:2.4
64
- FRAMEWORK: rails-6.0
58
+ FRAMEWORK: rails-7.2
65
59
 
66
60
  # Only test rails main on ruby 3.1
67
- - VERSION: ruby:3.0
68
- FRAMEWORK: rails-main
69
61
  - VERSION: ruby:2.7
70
62
  FRAMEWORK: rails-main
71
63
  - VERSION: ruby:2.6
72
64
  FRAMEWORK: rails-main
73
- - VERSION: ruby:2.5
74
- FRAMEWORK: rails-main
75
65
  - VERSION: ruby:2.4
76
66
  FRAMEWORK: rails-main
77
67
  - VERSION: jruby:9.2
@@ -83,29 +73,27 @@ exclude:
83
73
  - VERSION: elasticobservability/jruby:9.2-8-jdk
84
74
  FRAMEWORK: rails-main
85
75
 
86
- # Only test rails 7.0 on ruby >= 2.7
76
+ # Only test rails 7.2 on ruby >= 3.4
77
+ - VERSION: ruby:3.1
78
+ FRAMEWORK: rails-7.2
79
+ - VERSION: ruby:2.7
80
+ FRAMEWORK: rails-7.2
87
81
  - VERSION: ruby:2.6
88
- FRAMEWORK: rails-7.0
89
- - VERSION: ruby:2.5
90
- FRAMEWORK: rails-7.0
82
+ FRAMEWORK: rails-7.2
91
83
  - VERSION: ruby:2.4
92
- FRAMEWORK: rails-7.0
84
+ FRAMEWORK: rails-7.2
93
85
  - VERSION: jruby:9.2
94
- FRAMEWORK: rails-7.0
86
+ FRAMEWORK: rails-7.2
95
87
  - VERSION: elasticobservability/jruby:9.2-13-jdk
96
- FRAMEWORK: rails-7.0
88
+ FRAMEWORK: rails-7.2
97
89
  - VERSION: elasticobservability/jruby:9.2-11-jdk
98
- FRAMEWORK: rails-7.0
90
+ FRAMEWORK: rails-7.2
99
91
  - VERSION: elasticobservability/jruby:9.2-8-jdk
100
- FRAMEWORK: rails-7.0
92
+ FRAMEWORK: rails-7.2
101
93
 
102
94
  # Only test sinatra main on ruby 2.7 and ruby 3.1
103
- - VERSION: ruby:3.0
104
- FRAMEWORK: sinatra-main
105
95
  - VERSION: ruby:2.6
106
96
  FRAMEWORK: sinatra-main
107
- - VERSION: ruby:2.5
108
- FRAMEWORK: sinatra-main
109
97
  - VERSION: ruby:2.4
110
98
  FRAMEWORK: sinatra-main
111
99
  - VERSION: jruby:9.2
@@ -117,10 +105,12 @@ exclude:
117
105
  - VERSION: elasticobservability/jruby:9.2-8-jdk
118
106
  FRAMEWORK: sinatra-main
119
107
 
120
- # Only test grape master on ruby 2.7 and ruby 3.0
121
- - VERSION: ruby:2.6
108
+ # Only test grape master on ruby >= 3.2
109
+ - VERSION: ruby:3.1
122
110
  FRAMEWORK: grape-master
123
- - VERSION: ruby:2.5
111
+ - VERSION: ruby:2.7
112
+ FRAMEWORK: grape-master
113
+ - VERSION: ruby:2.6
124
114
  FRAMEWORK: grape-master
125
115
  - VERSION: ruby:2.4
126
116
  FRAMEWORK: grape-master
@@ -133,61 +123,16 @@ exclude:
133
123
  - VERSION: elasticobservability/jruby:9.2-8-jdk
134
124
  FRAMEWORK: grape-master
135
125
 
136
- # grape 1.5 doesn't support ruby 3.0
137
- - VERSION: ruby:3.1
138
- FRAMEWORK: grape-1.6
139
- - VERSION: ruby:3.1
140
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
126
+ # grape 1.5 doesn't support ruby 3.1
141
127
  - VERSION: ruby:3.1
142
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
143
- - VERSION: ruby:3.0
144
128
  FRAMEWORK: grape-1.6
145
- - VERSION: ruby:3.0
146
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
147
129
 
148
- # only test ruby >= 3.0 with rails 6.0 and rails 6.1
149
- - VERSION: ruby:3.1
130
+ # only test ruby >= 3.1 with rails 6.1 and rails 7.0
131
+ - VERSION: ruby:3.4
150
132
  FRAMEWORK: rails-5.2
151
- - VERSION: ruby:3.1
133
+ - VERSION: ruby:3.4
152
134
  FRAMEWORK: rails-5.1
153
- - VERSION: ruby:3.0
135
+ - VERSION: ruby:3.1
154
136
  FRAMEWORK: rails-5.2
155
- - VERSION: ruby:3.0
137
+ - VERSION: ruby:3.1
156
138
  FRAMEWORK: rails-5.1
157
-
158
- # Unsupported
159
- # Ruby 2.6
160
- - VERSION: ruby:2.6
161
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
162
- - VERSION: ruby:2.6
163
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
164
- # Ruby 2.5
165
- - VERSION: ruby:2.5
166
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
167
- - VERSION: ruby:2.5
168
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
169
- # Ruby 2.4
170
- - VERSION: ruby:2.4
171
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
172
- - VERSION: ruby:2.4
173
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
174
- # JRuby 9.2
175
- - VERSION: jruby:9.2
176
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
177
- - VERSION: jruby:9.2
178
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
179
- # JRuby 9.2-13-jdk
180
- - VERSION: elasticobservability/jruby:9.2-13-jdk
181
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
182
- - VERSION: elasticobservability/jruby:9.2-13-jdk
183
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
184
- # JRuby 9.2-11-jdk
185
- - VERSION: elasticobservability/jruby:9.2-11-jdk
186
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
187
- - VERSION: elasticobservability/jruby:9.2-11-jdk
188
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
189
- # JRuby 9.2-8-jdk
190
- - VERSION: elasticobservability/jruby:9.2-8-jdk
191
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-6.1
192
- - VERSION: elasticobservability/jruby:9.2-8-jdk
193
- FRAMEWORK: grape-1.6,sinatra-2.2,rails-7.0
data/.ci/.framework.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  FRAMEWORK:
2
- - rails-7.0
2
+ - rails-7.2
3
3
  - rails-6.1
4
- - rails-6.0
5
4
  - rails-5.2
6
5
  - rails-4.2
7
6
 
@@ -9,5 +8,3 @@ FRAMEWORK:
9
8
  - sinatra-1.4
10
9
 
11
10
  - grape-1.6
12
-
13
- - grape-1.6,sinatra-2.2,rails-6.1
data/.ci/.ruby.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  VERSION:
2
+ - ruby:3.4
2
3
  - ruby:3.1
3
- - ruby:3.0
4
4
  - ruby:2.7
5
5
  - ruby:2.6
6
6
  - ruby:2.4
@@ -0,0 +1 @@
1
+ apm_schema_specs_path: spec/fixtures
@@ -0,0 +1 @@
1
+ apm_gherkin_specs_path: features
@@ -0,0 +1 @@
1
+ apm_json_specs_path: spec/fixtures
@@ -0,0 +1,10 @@
1
+ scm:
2
+ enabled: true
3
+ owner: elastic
4
+ repository: apm-agent-ruby
5
+ branch: main
6
+ commitusingapi: true
7
+ # begin update-compose policy values
8
+ user: obltmachine
9
+ email: obltmachine@users.noreply.github.com
10
+ # end update-compose policy values
@@ -0,0 +1,3 @@
1
+ spec:
2
+ files:
3
+ - "updatecli-compose.yaml"
@@ -0,0 +1 @@
1
+ /.github/workflows @elastic/observablt-ci
@@ -46,8 +46,8 @@ Update your local repository with the most recent code from the main repo, and r
46
46
  Run the test suite to make sure that nothing is broken. See https://github.com/elastic/apm-agent-ruby/blob/main/CONTRIBUTING.md#testing for details.
47
47
  -->
48
48
  - [ ] I have made corresponding changes to the documentation
49
- - [ ] I have updated [CHANGELOG.asciidoc](CHANGELOG.asciidoc)
50
- - [ ] I have updated [supported-technologies.asciidoc](docs/supported-technologies.asciidoc)
49
+ - [ ] I have updated [docs/release-notes/index.md](../docs/release-notes/index.md)
50
+ - [ ] I have updated [docs/reference/supported-technologies.md](../docs/reference/supported-technologies.md)
51
51
  - [ ] Added an API method or config option? Document in which version this will be introduced
52
52
 
53
53
  ## Related issues
@@ -1,31 +1,34 @@
1
+ ---
1
2
  version: 2
2
3
  updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: "weekly"
7
- day: "sunday"
8
- time: "22:00"
9
- open-pull-requests-limit: 10
10
- ignore:
11
- - dependency-name: sucker_punch
12
- versions:
13
- - "> 2.0"
14
- - dependency-name: i18n
15
- versions:
16
- - 1.8.10
17
- - 1.8.8
18
- - 1.8.9
19
4
 
20
- # GitHub actions
5
+ - package-ecosystem: bundler
6
+ directory: "/"
7
+ schedule:
8
+ interval: "weekly"
9
+ day: "sunday"
10
+ time: "22:00"
11
+ open-pull-requests-limit: 5
12
+ ignore:
13
+ - dependency-name: sucker_punch
14
+ versions:
15
+ - "> 2.0"
16
+ - dependency-name: i18n
17
+ versions:
18
+ - 1.8.10
19
+ - 1.8.8
20
+ - 1.8.9
21
+
22
+ # Maintain dependencies for GitHub Actions (/.github/workflows)
21
23
  - package-ecosystem: "github-actions"
22
24
  directory: "/"
23
- reviewers:
24
- - "elastic/observablt-ci"
25
25
  schedule:
26
26
  interval: "weekly"
27
27
  day: "sunday"
28
28
  time: "22:00"
29
+ open-pull-requests-limit: 5
30
+ labels:
31
+ - dependencies
29
32
  groups:
30
33
  github-actions:
31
34
  patterns:
@@ -11,7 +11,6 @@ There are 5 main stages that run on GitHub actions:
11
11
  There are some other stages that run for every push on the main branches:
12
12
 
13
13
  * [Microbenchmark](./microbenchmark.yml)
14
- * [Snapshoty](./snapshoty.yml)
15
14
 
16
15
  ### Scenarios
17
16
 
@@ -50,7 +49,7 @@ The tag release follows the naming convention: `v.<major>.<minor>.<patch>`, wher
50
49
 
51
50
  ### OpenTelemetry
52
51
 
53
- There is a GitHub workflow in charge to populate what the workflow run in terms of jobs and steps. Those details can be seen in [here](https://ela.st/oblt-ci-cd-stats) (**NOTE**: only available for Elasticians).
52
+ Every workflow and its logs are exported to OpenTelemetry traces/logs/metrics. Those details can be seen [here](https://ela.st/oblt-ci-cd-stats) (**NOTE**: only available for Elasticians).
54
53
 
55
54
  ## Bump automation
56
55
 
@@ -5,8 +5,6 @@ on:
5
5
  types: [opened, edited, milestoned]
6
6
  pull_request_target:
7
7
  types: [opened, edited, milestoned]
8
- env:
9
- MY_GITHUB_TOKEN: ${{ secrets.APM_TECH_USER_TOKEN }}
10
8
 
11
9
  permissions:
12
10
  contents: read
@@ -16,17 +14,50 @@ jobs:
16
14
  runs-on: ubuntu-latest
17
15
  name: Assign milestoned to Project
18
16
  steps:
19
- - name: Assign issues with milestones to project
20
- uses: elastic/assign-one-project-github-action@1.2.2
17
+ - name: Get token
18
+ id: get_token
19
+ uses: actions/create-github-app-token@v3
20
+ with:
21
+ app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }}
22
+ private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }}
23
+ permission-organization-projects: write
24
+ permission-issues: read
25
+ permission-pull-requests: read
26
+
27
+ - name: Add milestoned issues to project
28
+ id: add-issue-to-project
29
+ if: github.event.issue && github.event.issue.milestone
30
+ uses: elastic/oblt-actions/github/project-add@v1
31
+ with:
32
+ github-token: ${{ steps.get_token.outputs.token }}
33
+ project-id: 1674
34
+ item-url: ${{ github.event.issue.html_url }}
35
+
36
+ - name: Set issue status to Planned
21
37
  if: github.event.issue && github.event.issue.milestone
38
+ uses: elastic/oblt-actions/github/project-field-set@v1
22
39
  with:
23
- project: 'https://github.com/orgs/elastic/projects/454'
24
- project_id: '5882982'
25
- column_name: 'Planned'
26
- - name: Assign new pull requests to project
27
- uses: elastic/assign-one-project-github-action@1.2.2
40
+ github-token: ${{ steps.get_token.outputs.token }}
41
+ project-id: 1674
42
+ item-id: ${{ steps.add-issue-to-project.outputs.item-id }}
43
+ field-name: Status
44
+ field-value: Planned
45
+
46
+ - name: Add new pull requests to project
47
+ id: add-pr-to-project
48
+ if: github.event.action == 'opened' && github.event.pull_request
49
+ uses: elastic/oblt-actions/github/project-add@v1
50
+ with:
51
+ github-token: ${{ steps.get_token.outputs.token }}
52
+ project-id: 1674
53
+ item-url: ${{ github.event.pull_request.html_url }}
54
+
55
+ - name: Set pull request status to In Progress
28
56
  if: github.event.action == 'opened' && github.event.pull_request
57
+ uses: elastic/oblt-actions/github/project-field-set@v1
29
58
  with:
30
- project: 'https://github.com/orgs/elastic/projects/454'
31
- project_id: '5882982'
32
- column_name: 'In Progress'
59
+ github-token: ${{ steps.get_token.outputs.token }}
60
+ project-id: 1674
61
+ item-id: ${{ steps.add-pr-to-project.outputs.item-id }}
62
+ field-name: Status
63
+ field-value: In Progress
@@ -19,7 +19,7 @@ jobs:
19
19
  sanity-checks:
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
- - uses: elastic/apm-pipeline-library/.github/actions/pre-commit@current
22
+ - uses: elastic/oblt-actions/pre-commit@v1
23
23
 
24
24
  # Invokes the actual matrix workflow with the provided files.
25
25
  matrix:
@@ -41,7 +41,7 @@ jobs:
41
41
  package:
42
42
  runs-on: ubuntu-latest
43
43
  steps:
44
- - uses: actions/checkout@v3
44
+ - uses: actions/checkout@v4
45
45
  - uses: ruby/setup-ruby@v1
46
46
  with:
47
47
  ruby-version: 2.6
@@ -49,7 +49,7 @@ jobs:
49
49
  run: .ci/scripts/install-build-system.sh
50
50
  - name: Create gem
51
51
  run: rake build
52
- - uses: actions/upload-artifact@v3
52
+ - uses: actions/upload-artifact@v4
53
53
  with:
54
54
  name: package
55
55
  path: ./pkg/**/*
@@ -64,7 +64,7 @@ jobs:
64
64
  - package
65
65
  steps:
66
66
  - id: check
67
- uses: elastic/apm-pipeline-library/.github/actions/check-dependent-jobs@current
67
+ uses: elastic/oblt-actions/check-dependent-jobs@v1
68
68
  with:
69
- needs: ${{ toJSON(needs) }}
70
- - run: ${{ steps.check.outputs.isSuccess }}
69
+ jobs: ${{ toJSON(needs) }}
70
+ - run: ${{ steps.check.outputs.is-success }}
@@ -0,0 +1,16 @@
1
+ name: docs-build
2
+ on:
3
+ pull_request:
4
+ branches: [main]
5
+ types: [opened, synchronize, reopened]
6
+ push:
7
+ branches: [main]
8
+ merge_group: ~
9
+ permissions:
10
+ contents: read
11
+ pull-requests: read
12
+ jobs:
13
+ build:
14
+ uses: elastic/docs-actions/.github/workflows/docs-build.yml@v1
15
+ with:
16
+ enable-vale-linting: true
@@ -0,0 +1,16 @@
1
+ name: docs-deploy
2
+ on:
3
+ workflow_run:
4
+ workflows: [docs-build]
5
+ types: [completed]
6
+ permissions:
7
+ contents: read
8
+ deployments: write
9
+ id-token: write
10
+ pull-requests: write
11
+ actions: read
12
+ jobs:
13
+ deploy:
14
+ uses: elastic/docs-actions/.github/workflows/docs-deploy.yml@v1
15
+ with:
16
+ enable-vale-linting: true
@@ -0,0 +1,12 @@
1
+ name: docs-preview-cleanup
2
+ on:
3
+ pull_request_target:
4
+ branches: [main]
5
+ types: [closed]
6
+ permissions:
7
+ contents: none
8
+ deployments: write
9
+ id-token: write
10
+ jobs:
11
+ cleanup:
12
+ uses: elastic/docs-actions/.github/workflows/docs-preview-cleanup.yml@v1
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: github-commands-comment
3
+
4
+ on:
5
+ pull_request_target:
6
+ types:
7
+ - opened
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ comment:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ pull-requests: write
17
+ steps:
18
+ - uses: elastic/oblt-actions/elastic/github-commands@v1
@@ -16,33 +16,16 @@ permissions:
16
16
  jobs:
17
17
  microbenchmark:
18
18
  runs-on: ubuntu-latest
19
- # wait up to 1 hour
20
- timeout-minutes: 60
19
+ timeout-minutes: 5
21
20
  steps:
22
- - id: buildkite
23
- name: Run buildkite pipeline
24
- uses: elastic/apm-pipeline-library/.github/actions/buildkite@current
21
+ - name: Run microbenchmark
22
+ uses: elastic/oblt-actions/buildkite/run@v1
25
23
  with:
26
- vaultUrl: ${{ secrets.VAULT_ADDR }}
27
- vaultRoleId: ${{ secrets.VAULT_ROLE_ID }}
28
- vaultSecretId: ${{ secrets.VAULT_SECRET_ID }}
29
- pipeline: apm-agent-microbenchmark
30
- triggerMessage: "${{ github.repository }}@${{ github.ref_name }}"
31
- waitFor: true
32
- printBuildLogs: true
33
- buildEnvVars: |
24
+ pipeline: "apm-agent-microbenchmark"
25
+ token: ${{ secrets.BUILDKITE_TOKEN }}
26
+ wait-for: false
27
+ env-vars: |
34
28
  script=.ci/scripts/bench.sh
35
29
  repo=apm-agent-ruby
36
30
  sha=${{ github.sha }}
37
31
  BRANCH_NAME=${{ github.ref_name }}
38
-
39
- - if: ${{ failure() }}
40
- uses: elastic/apm-pipeline-library/.github/actions/slack-message@current
41
- with:
42
- url: ${{ secrets.VAULT_ADDR }}
43
- roleId: ${{ secrets.VAULT_ROLE_ID }}
44
- secretId: ${{ secrets.VAULT_SECRET_ID }}
45
- channel: "#apm-agent-ruby"
46
- message: |
47
- :ghost: [${{ github.repository }}] microbenchmark *${{ github.ref_name }}* failed to run in Buildkite.
48
- Build: (<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|here>)
@@ -4,51 +4,68 @@ on:
4
4
  push:
5
5
  tags:
6
6
  - "v[0-9]+*"
7
+ branches:
8
+ - main
7
9
 
8
10
  permissions:
9
- contents: write
11
+ contents: read
10
12
 
11
13
  jobs:
12
14
  release:
13
15
  runs-on: ubuntu-latest
16
+ permissions:
17
+ artifact-metadata: write
18
+ attestations: write
19
+ contents: write
20
+ id-token: write
14
21
  steps:
15
- - uses: actions/checkout@v3
22
+ - uses: actions/checkout@v4
16
23
  - uses: ruby/setup-ruby@v1
17
24
  with:
18
25
  ruby-version: 2.6
19
- - uses: hashicorp/vault-action@v2.4.2
20
- with:
21
- url: ${{ secrets.VAULT_ADDR }}
22
- method: approle
23
- roleId: ${{ secrets.VAULT_ROLE_ID }}
24
- secretId: ${{ secrets.VAULT_SECRET_ID }}
25
- secrets: |
26
- secret/apm-team/ci/apm-agent-ruby-rubygems-release apiKey | API_KEY ;
27
26
  - name: RubyGems login
28
27
  run: |
29
28
  RUBY_HOME="${HOME}/.gem"
30
29
  RUBY_CREDENTIALS_FILE="${RUBY_HOME}/credentials"
31
30
  mkdir -p "${RUBY_HOME}"
32
31
  echo '---' > "${RUBY_CREDENTIALS_FILE}"
33
- echo ":rubygems_api_key: ${API_KEY}" >> "${RUBY_CREDENTIALS_FILE}"
32
+ echo ":rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}" >> "${RUBY_CREDENTIALS_FILE}"
34
33
  chmod 0600 "${RUBY_CREDENTIALS_FILE}"
34
+
35
35
  - name: Install build system
36
36
  run: .ci/scripts/install-build-system.sh
37
- - run: rake release
37
+
38
+ - name: rake release (only for tags)
39
+ run: rake release
40
+ if: startsWith(github.ref, 'refs/tags')
41
+
42
+ - name: rake build
43
+ run: rake build
44
+ if: ${{ ! startsWith(github.ref, 'refs/tags') }}
45
+
46
+ - name: generate build provenance
47
+ uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
48
+ with:
49
+ subject-path: "${{ github.workspace }}/pkg/*.gem"
50
+
38
51
  update-branch:
39
52
  needs:
40
53
  - release
41
54
  runs-on: ubuntu-latest
55
+ permissions:
56
+ contents: write
42
57
  steps:
43
- - uses: actions/checkout@v3
58
+ - uses: actions/checkout@v4
44
59
  - uses: ruby/setup-ruby@v1
45
60
  with:
46
61
  ruby-version: 2.6
47
62
  - name: Setup Git
48
- uses: elastic/apm-pipeline-library/.github/actions/setup-git@current
63
+ uses: elastic/oblt-actions/git/setup@v1
49
64
  - name: Install build system
50
65
  run: .ci/scripts/install-build-system.sh
51
- - run: rake release:update_branch
66
+ - name: rake release:update_branch (only for tags)
67
+ run: rake release:update_branch
68
+ if: startsWith(github.ref, 'refs/tags')
52
69
 
53
70
  status:
54
71
  if: always()
@@ -58,14 +75,13 @@ jobs:
58
75
  - update-branch
59
76
  steps:
60
77
  - id: check
61
- uses: elastic/apm-pipeline-library/.github/actions/check-dependent-jobs@current
78
+ uses: elastic/oblt-actions/check-dependent-jobs@v1
62
79
  with:
63
- needs: ${{ toJSON(needs) }}
64
- - run: ${{ steps.check.outputs.isSuccess }}
65
- - if: always()
66
- uses: elastic/apm-pipeline-library/.github/actions/notify-build-status@current
80
+ jobs: ${{ toJSON(needs) }}
81
+ - run: ${{ steps.check.outputs.is-success }}
82
+ - if: ${{ always() && startsWith(github.ref, 'refs/tags') }}
83
+ uses: elastic/oblt-actions/slack/notify-result@v1
67
84
  with:
68
- vaultUrl: ${{ secrets.VAULT_ADDR }}
69
- vaultRoleId: ${{ secrets.VAULT_ROLE_ID }}
70
- vaultSecretId: ${{ secrets.VAULT_SECRET_ID }}
71
- slackChannel: "#apm-agent-ruby"
85
+ bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
86
+ channel-id: "#apm-agent-ruby"
87
+ message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|here>"