cloudsnorkel.cdk-github-runners 0.12.5__tar.gz → 0.14.15__tar.gz
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.
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/PKG-INFO +86 -17
- cloudsnorkel.cdk-github-runners-0.12.5/src/cloudsnorkel.cdk_github_runners.egg-info/PKG-INFO → cloudsnorkel_cdk_github_runners-0.14.15/README.md +78 -36
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/pyproject.toml +2 -2
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/setup.py +7 -8
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/src/cloudsnorkel/cdk_github_runners/__init__.py +841 -58
- cloudsnorkel_cdk_github_runners-0.14.15/src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py +45 -0
- cloudsnorkel_cdk_github_runners-0.14.15/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.15.jsii.tgz +0 -0
- cloudsnorkel.cdk-github-runners-0.12.5/README.md → cloudsnorkel_cdk_github_runners-0.14.15/src/cloudsnorkel.cdk_github_runners.egg-info/PKG-INFO +105 -13
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/src/cloudsnorkel.cdk_github_runners.egg-info/SOURCES.txt +1 -1
- cloudsnorkel_cdk_github_runners-0.14.15/src/cloudsnorkel.cdk_github_runners.egg-info/requires.txt +5 -0
- cloudsnorkel.cdk-github-runners-0.12.5/src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py +0 -30
- cloudsnorkel.cdk-github-runners-0.12.5/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.12.5.jsii.tgz +0 -0
- cloudsnorkel.cdk-github-runners-0.12.5/src/cloudsnorkel.cdk_github_runners.egg-info/requires.txt +0 -5
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/LICENSE +0 -0
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/MANIFEST.in +0 -0
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/setup.cfg +0 -0
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/src/cloudsnorkel/cdk_github_runners/py.typed +0 -0
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/src/cloudsnorkel.cdk_github_runners.egg-info/dependency_links.txt +0 -0
- {cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/src/cloudsnorkel.cdk_github_runners.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cloudsnorkel.cdk-github-runners
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: CDK construct to create GitHub Actions self-hosted runners.
|
|
3
|
+
Version: 0.14.15
|
|
4
|
+
Summary: CDK construct to create GitHub Actions self-hosted runners. Creates ephemeral runners on demand. Easy to deploy and highly customizable.
|
|
5
5
|
Home-page: https://github.com/CloudSnorkel/cdk-github-runners.git
|
|
6
6
|
Author: Amir Szekely<amir@cloudsnorkel.com>
|
|
7
7
|
License: Apache-2.0
|
|
@@ -10,16 +10,20 @@ Classifier: Intended Audience :: Developers
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: JavaScript
|
|
12
12
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Typing :: Typed
|
|
18
17
|
Classifier: Development Status :: 4 - Beta
|
|
19
18
|
Classifier: License :: OSI Approved
|
|
20
|
-
Requires-Python: ~=3.
|
|
19
|
+
Requires-Python: ~=3.9
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
License-File: LICENSE
|
|
22
|
+
Requires-Dist: aws-cdk-lib<3.0.0,>=2.155.0
|
|
23
|
+
Requires-Dist: constructs<11.0.0,>=10.0.5
|
|
24
|
+
Requires-Dist: jsii<2.0.0,>=1.120.0
|
|
25
|
+
Requires-Dist: publication>=0.0.3
|
|
26
|
+
Requires-Dist: typeguard==2.13.3
|
|
23
27
|
|
|
24
28
|
# GitHub Self-Hosted Runners CDK Constructs
|
|
25
29
|
|
|
@@ -33,17 +37,17 @@ License-File: LICENSE
|
|
|
33
37
|
|
|
34
38
|
Use this CDK construct to create ephemeral [self-hosted GitHub runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) on-demand inside your AWS account.
|
|
35
39
|
|
|
36
|
-
* Easy to configure GitHub integration with a web-based interface
|
|
37
|
-
* Customizable runners with decent defaults
|
|
38
|
-
* Multiple runner configurations controlled by labels
|
|
39
|
-
* Everything fully hosted in your account
|
|
40
|
-
* Automatically updated build environment with latest runner version
|
|
40
|
+
* 🧩 Easy to configure GitHub integration with a web-based interface
|
|
41
|
+
* 🧠 Customizable runners with decent defaults
|
|
42
|
+
* 🏃🏻 Multiple runner configurations controlled by labels
|
|
43
|
+
* 🔐 Everything fully hosted in your account
|
|
44
|
+
* 🔃 Automatically updated build environment with latest runner version
|
|
41
45
|
|
|
42
46
|
Self-hosted runners in AWS are useful when:
|
|
43
47
|
|
|
44
48
|
* You need easy access to internal resources in your actions
|
|
45
49
|
* You want to pre-install some software for your actions
|
|
46
|
-
* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials](https://github.com/marketplace/actions/configure-aws-credentials-for-github-actions) has more security controls)
|
|
50
|
+
* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials](https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions) has more security controls)
|
|
47
51
|
* You are using GitHub Enterprise Server
|
|
48
52
|
|
|
49
53
|
Ephemeral (or on-demand) runners are the [recommended way by GitHub](https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling) for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.
|
|
@@ -93,9 +97,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
93
97
|
### Use
|
|
94
98
|
|
|
95
99
|
```python
|
|
100
|
+
from aws_cdk import App, Stack
|
|
96
101
|
from cloudsnorkel.cdk_github_runners import GitHubRunners
|
|
97
102
|
|
|
98
|
-
|
|
103
|
+
app = App()
|
|
104
|
+
stack = Stack(app, "github-runners")
|
|
105
|
+
GitHubRunners(stack, "runners")
|
|
106
|
+
|
|
107
|
+
app.synth()
|
|
99
108
|
```
|
|
100
109
|
|
|
101
110
|
</details>
|
|
@@ -112,9 +121,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
112
121
|
### Use
|
|
113
122
|
|
|
114
123
|
```python
|
|
124
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
115
125
|
import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
|
|
116
126
|
|
|
117
|
-
new
|
|
127
|
+
const app = new App();
|
|
128
|
+
const stack = new Stack(app, 'github-runners');
|
|
129
|
+
new GitHubRunners(stack, 'runners');
|
|
130
|
+
|
|
131
|
+
app.synth();
|
|
118
132
|
```
|
|
119
133
|
|
|
120
134
|
</details>
|
|
@@ -134,9 +148,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
134
148
|
### Use
|
|
135
149
|
|
|
136
150
|
```java
|
|
151
|
+
import software.amazon.awscdk.App;
|
|
152
|
+
import software.amazon.awscdk.Stack;
|
|
137
153
|
import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
|
|
138
154
|
|
|
139
|
-
|
|
155
|
+
public class Example {
|
|
156
|
+
public static void main(String[] args){
|
|
157
|
+
App app = new App();
|
|
158
|
+
Stack stack = new Stack(app, "github-runners");
|
|
159
|
+
GitHubRunners.Builder.create(stack, "runners").build();
|
|
160
|
+
|
|
161
|
+
app.synth();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
140
164
|
```
|
|
141
165
|
|
|
142
166
|
</details>
|
|
@@ -153,9 +177,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
153
177
|
### Use
|
|
154
178
|
|
|
155
179
|
```go
|
|
156
|
-
|
|
180
|
+
package main
|
|
181
|
+
|
|
182
|
+
import (
|
|
183
|
+
"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
|
|
184
|
+
"github.com/aws/aws-cdk-go/awscdk/v2"
|
|
185
|
+
"github.com/aws/jsii-runtime-go"
|
|
186
|
+
)
|
|
157
187
|
|
|
158
|
-
|
|
188
|
+
func main() {
|
|
189
|
+
app := awscdk.NewApp(nil)
|
|
190
|
+
stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
|
|
191
|
+
cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
|
|
192
|
+
|
|
193
|
+
app.Synth(nil)
|
|
194
|
+
}
|
|
159
195
|
```
|
|
160
196
|
|
|
161
197
|
</details>
|
|
@@ -172,9 +208,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
172
208
|
### Use
|
|
173
209
|
|
|
174
210
|
```csharp
|
|
211
|
+
using Amazon.CDK;
|
|
175
212
|
using CloudSnorkel;
|
|
176
213
|
|
|
177
|
-
|
|
214
|
+
namespace Example
|
|
215
|
+
{
|
|
216
|
+
sealed class Program
|
|
217
|
+
{
|
|
218
|
+
public static void Main(string[] args)
|
|
219
|
+
{
|
|
220
|
+
var app = new App();
|
|
221
|
+
var stack = new Stack(app, "github-runners");
|
|
222
|
+
new GitHubRunners(stack, "runners");
|
|
223
|
+
app.Synth();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
178
227
|
```
|
|
179
228
|
|
|
180
229
|
</details>
|
|
@@ -193,7 +242,7 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
193
242
|
5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file
|
|
194
243
|
6. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token
|
|
195
244
|
7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK
|
|
196
|
-
8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted,
|
|
245
|
+
8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, codebuild]` (or non-default labels you set in step 2)
|
|
197
246
|
9. If the action is not successful, see [troubleshooting](#Troubleshooting)
|
|
198
247
|
|
|
199
248
|
[](https://youtu.be/wlyv_3V8lIw)
|
|
@@ -301,6 +350,12 @@ new GitHubRunners(this, 'runners', {
|
|
|
301
350
|
});
|
|
302
351
|
```
|
|
303
352
|
|
|
353
|
+
## Examples
|
|
354
|
+
|
|
355
|
+
Beyond the code snippets above, the fullest example available is the [integration test](test/default.integ.ts).
|
|
356
|
+
|
|
357
|
+
If you have more to share, please open a PR adding them to the `examples` folder.
|
|
358
|
+
|
|
304
359
|
## Architecture
|
|
305
360
|
|
|
306
361
|

|
|
@@ -345,6 +400,20 @@ Other useful metrics to track:
|
|
|
345
400
|
1. Use `GitHubRunners.metricJobCompleted()` to get a metric for the number of completed jobs broken down by labels and job success.
|
|
346
401
|
2. Use `GitHubRunners.metricTime()` to get a metric for the total time a runner is running. This includes the overhead of starting the runner.
|
|
347
402
|
|
|
403
|
+
## Contributing
|
|
404
|
+
|
|
405
|
+
If you use and love this project, please consider contributing.
|
|
406
|
+
|
|
407
|
+
1. 🪳 If you see something, say something. [Issues](https://github.com/CloudSnorkel/cdk-github-runners/issues) help improve the quality of the project.
|
|
408
|
+
|
|
409
|
+
* Include relevant logs and package versions for bugs.
|
|
410
|
+
* When possible, describe the use-case behind feature requests.
|
|
411
|
+
2. 🛠️ [Pull requests](https://github.com/CloudSnorkel/cdk-github-runners/pulls) are welcome.
|
|
412
|
+
|
|
413
|
+
* Run `npm run build` before submitting to make sure all tests pass.
|
|
414
|
+
* Allow edits from maintainers so small adjustments can be made easily.
|
|
415
|
+
3. 💵 Consider [sponsoring](https://github.com/sponsors/CloudSnorkel) the project to show your support and optionally get your name listed below.
|
|
416
|
+
|
|
348
417
|
## Other Options
|
|
349
418
|
|
|
350
419
|
1. [philips-labs/terraform-aws-github-runner](https://github.com/philips-labs/terraform-aws-github-runner) if you're using Terraform
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: cloudsnorkel.cdk-github-runners
|
|
3
|
-
Version: 0.12.5
|
|
4
|
-
Summary: CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.
|
|
5
|
-
Home-page: https://github.com/CloudSnorkel/cdk-github-runners.git
|
|
6
|
-
Author: Amir Szekely<amir@cloudsnorkel.com>
|
|
7
|
-
License: Apache-2.0
|
|
8
|
-
Project-URL: Source, https://github.com/CloudSnorkel/cdk-github-runners.git
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Programming Language :: JavaScript
|
|
12
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Typing :: Typed
|
|
18
|
-
Classifier: Development Status :: 4 - Beta
|
|
19
|
-
Classifier: License :: OSI Approved
|
|
20
|
-
Requires-Python: ~=3.8
|
|
21
|
-
Description-Content-Type: text/markdown
|
|
22
|
-
License-File: LICENSE
|
|
23
|
-
|
|
24
1
|
# GitHub Self-Hosted Runners CDK Constructs
|
|
25
2
|
|
|
26
3
|
[](https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners)
|
|
@@ -33,17 +10,17 @@ License-File: LICENSE
|
|
|
33
10
|
|
|
34
11
|
Use this CDK construct to create ephemeral [self-hosted GitHub runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners) on-demand inside your AWS account.
|
|
35
12
|
|
|
36
|
-
* Easy to configure GitHub integration with a web-based interface
|
|
37
|
-
* Customizable runners with decent defaults
|
|
38
|
-
* Multiple runner configurations controlled by labels
|
|
39
|
-
* Everything fully hosted in your account
|
|
40
|
-
* Automatically updated build environment with latest runner version
|
|
13
|
+
* 🧩 Easy to configure GitHub integration with a web-based interface
|
|
14
|
+
* 🧠 Customizable runners with decent defaults
|
|
15
|
+
* 🏃🏻 Multiple runner configurations controlled by labels
|
|
16
|
+
* 🔐 Everything fully hosted in your account
|
|
17
|
+
* 🔃 Automatically updated build environment with latest runner version
|
|
41
18
|
|
|
42
19
|
Self-hosted runners in AWS are useful when:
|
|
43
20
|
|
|
44
21
|
* You need easy access to internal resources in your actions
|
|
45
22
|
* You want to pre-install some software for your actions
|
|
46
|
-
* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials](https://github.com/marketplace/actions/configure-aws-credentials-for-github-actions) has more security controls)
|
|
23
|
+
* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials](https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions) has more security controls)
|
|
47
24
|
* You are using GitHub Enterprise Server
|
|
48
25
|
|
|
49
26
|
Ephemeral (or on-demand) runners are the [recommended way by GitHub](https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling) for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.
|
|
@@ -93,9 +70,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
93
70
|
### Use
|
|
94
71
|
|
|
95
72
|
```python
|
|
73
|
+
from aws_cdk import App, Stack
|
|
96
74
|
from cloudsnorkel.cdk_github_runners import GitHubRunners
|
|
97
75
|
|
|
98
|
-
|
|
76
|
+
app = App()
|
|
77
|
+
stack = Stack(app, "github-runners")
|
|
78
|
+
GitHubRunners(stack, "runners")
|
|
79
|
+
|
|
80
|
+
app.synth()
|
|
99
81
|
```
|
|
100
82
|
|
|
101
83
|
</details>
|
|
@@ -112,9 +94,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
112
94
|
### Use
|
|
113
95
|
|
|
114
96
|
```python
|
|
97
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
115
98
|
import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
|
|
116
99
|
|
|
117
|
-
new
|
|
100
|
+
const app = new App();
|
|
101
|
+
const stack = new Stack(app, 'github-runners');
|
|
102
|
+
new GitHubRunners(stack, 'runners');
|
|
103
|
+
|
|
104
|
+
app.synth();
|
|
118
105
|
```
|
|
119
106
|
|
|
120
107
|
</details>
|
|
@@ -134,9 +121,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
134
121
|
### Use
|
|
135
122
|
|
|
136
123
|
```java
|
|
124
|
+
import software.amazon.awscdk.App;
|
|
125
|
+
import software.amazon.awscdk.Stack;
|
|
137
126
|
import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
|
|
138
127
|
|
|
139
|
-
|
|
128
|
+
public class Example {
|
|
129
|
+
public static void main(String[] args){
|
|
130
|
+
App app = new App();
|
|
131
|
+
Stack stack = new Stack(app, "github-runners");
|
|
132
|
+
GitHubRunners.Builder.create(stack, "runners").build();
|
|
133
|
+
|
|
134
|
+
app.synth();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
140
137
|
```
|
|
141
138
|
|
|
142
139
|
</details>
|
|
@@ -153,9 +150,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
153
150
|
### Use
|
|
154
151
|
|
|
155
152
|
```go
|
|
156
|
-
|
|
153
|
+
package main
|
|
157
154
|
|
|
158
|
-
|
|
155
|
+
import (
|
|
156
|
+
"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
|
|
157
|
+
"github.com/aws/aws-cdk-go/awscdk/v2"
|
|
158
|
+
"github.com/aws/jsii-runtime-go"
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
func main() {
|
|
162
|
+
app := awscdk.NewApp(nil)
|
|
163
|
+
stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
|
|
164
|
+
cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
|
|
165
|
+
|
|
166
|
+
app.Synth(nil)
|
|
167
|
+
}
|
|
159
168
|
```
|
|
160
169
|
|
|
161
170
|
</details>
|
|
@@ -172,9 +181,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
172
181
|
### Use
|
|
173
182
|
|
|
174
183
|
```csharp
|
|
184
|
+
using Amazon.CDK;
|
|
175
185
|
using CloudSnorkel;
|
|
176
186
|
|
|
177
|
-
|
|
187
|
+
namespace Example
|
|
188
|
+
{
|
|
189
|
+
sealed class Program
|
|
190
|
+
{
|
|
191
|
+
public static void Main(string[] args)
|
|
192
|
+
{
|
|
193
|
+
var app = new App();
|
|
194
|
+
var stack = new Stack(app, "github-runners");
|
|
195
|
+
new GitHubRunners(stack, "runners");
|
|
196
|
+
app.Synth();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
178
200
|
```
|
|
179
201
|
|
|
180
202
|
</details>
|
|
@@ -193,7 +215,7 @@ You can also create your own provider by implementing `IRunnerProvider`.
|
|
|
193
215
|
5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file
|
|
194
216
|
6. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token
|
|
195
217
|
7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK
|
|
196
|
-
8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted,
|
|
218
|
+
8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, codebuild]` (or non-default labels you set in step 2)
|
|
197
219
|
9. If the action is not successful, see [troubleshooting](#Troubleshooting)
|
|
198
220
|
|
|
199
221
|
[](https://youtu.be/wlyv_3V8lIw)
|
|
@@ -301,6 +323,12 @@ new GitHubRunners(this, 'runners', {
|
|
|
301
323
|
});
|
|
302
324
|
```
|
|
303
325
|
|
|
326
|
+
## Examples
|
|
327
|
+
|
|
328
|
+
Beyond the code snippets above, the fullest example available is the [integration test](test/default.integ.ts).
|
|
329
|
+
|
|
330
|
+
If you have more to share, please open a PR adding them to the `examples` folder.
|
|
331
|
+
|
|
304
332
|
## Architecture
|
|
305
333
|
|
|
306
334
|

|
|
@@ -345,6 +373,20 @@ Other useful metrics to track:
|
|
|
345
373
|
1. Use `GitHubRunners.metricJobCompleted()` to get a metric for the number of completed jobs broken down by labels and job success.
|
|
346
374
|
2. Use `GitHubRunners.metricTime()` to get a metric for the total time a runner is running. This includes the overhead of starting the runner.
|
|
347
375
|
|
|
376
|
+
## Contributing
|
|
377
|
+
|
|
378
|
+
If you use and love this project, please consider contributing.
|
|
379
|
+
|
|
380
|
+
1. 🪳 If you see something, say something. [Issues](https://github.com/CloudSnorkel/cdk-github-runners/issues) help improve the quality of the project.
|
|
381
|
+
|
|
382
|
+
* Include relevant logs and package versions for bugs.
|
|
383
|
+
* When possible, describe the use-case behind feature requests.
|
|
384
|
+
2. 🛠️ [Pull requests](https://github.com/CloudSnorkel/cdk-github-runners/pulls) are welcome.
|
|
385
|
+
|
|
386
|
+
* Run `npm run build` before submitting to make sure all tests pass.
|
|
387
|
+
* Allow edits from maintainers so small adjustments can be made easily.
|
|
388
|
+
3. 💵 Consider [sponsoring](https://github.com/sponsors/CloudSnorkel) the project to show your support and optionally get your name listed below.
|
|
389
|
+
|
|
348
390
|
## Other Options
|
|
349
391
|
|
|
350
392
|
1. [philips-labs/terraform-aws-github-runner](https://github.com/philips-labs/terraform-aws-github-runner) if you're using Terraform
|
{cloudsnorkel.cdk-github-runners-0.12.5 → cloudsnorkel_cdk_github_runners-0.14.15}/pyproject.toml
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools~=
|
|
2
|
+
requires = ["setuptools~=75.3.2", "build~=1.3.0"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[tool.pyright]
|
|
6
6
|
defineConstant = { DEBUG = true }
|
|
7
|
-
pythonVersion = "3.
|
|
7
|
+
pythonVersion = "3.9"
|
|
8
8
|
pythonPlatform = "All"
|
|
9
9
|
reportSelfClsParameterName = false
|
|
@@ -5,8 +5,8 @@ kwargs = json.loads(
|
|
|
5
5
|
"""
|
|
6
6
|
{
|
|
7
7
|
"name": "cloudsnorkel.cdk-github-runners",
|
|
8
|
-
"version": "0.
|
|
9
|
-
"description": "CDK construct to create GitHub Actions self-hosted runners.
|
|
8
|
+
"version": "0.14.15",
|
|
9
|
+
"description": "CDK construct to create GitHub Actions self-hosted runners. Creates ephemeral runners on demand. Easy to deploy and highly customizable.",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"url": "https://github.com/CloudSnorkel/cdk-github-runners.git",
|
|
12
12
|
"long_description_content_type": "text/markdown",
|
|
@@ -26,26 +26,25 @@ kwargs = json.loads(
|
|
|
26
26
|
],
|
|
27
27
|
"package_data": {
|
|
28
28
|
"cloudsnorkel.cdk_github_runners._jsii": [
|
|
29
|
-
"cdk-github-runners@0.
|
|
29
|
+
"cdk-github-runners@0.14.15.jsii.tgz"
|
|
30
30
|
],
|
|
31
31
|
"cloudsnorkel.cdk_github_runners": [
|
|
32
32
|
"py.typed"
|
|
33
33
|
]
|
|
34
34
|
},
|
|
35
|
-
"python_requires": "~=3.
|
|
35
|
+
"python_requires": "~=3.9",
|
|
36
36
|
"install_requires": [
|
|
37
|
-
"aws-cdk-lib>=2.
|
|
37
|
+
"aws-cdk-lib>=2.155.0, <3.0.0",
|
|
38
38
|
"constructs>=10.0.5, <11.0.0",
|
|
39
|
-
"jsii>=1.
|
|
39
|
+
"jsii>=1.120.0, <2.0.0",
|
|
40
40
|
"publication>=0.0.3",
|
|
41
|
-
"typeguard
|
|
41
|
+
"typeguard==2.13.3"
|
|
42
42
|
],
|
|
43
43
|
"classifiers": [
|
|
44
44
|
"Intended Audience :: Developers",
|
|
45
45
|
"Operating System :: OS Independent",
|
|
46
46
|
"Programming Language :: JavaScript",
|
|
47
47
|
"Programming Language :: Python :: 3 :: Only",
|
|
48
|
-
"Programming Language :: Python :: 3.8",
|
|
49
48
|
"Programming Language :: Python :: 3.9",
|
|
50
49
|
"Programming Language :: Python :: 3.10",
|
|
51
50
|
"Programming Language :: Python :: 3.11",
|