cloudsnorkel.cdk-github-runners 0.14.0__tar.gz → 0.14.2__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.

Potentially problematic release.


This version of cloudsnorkel.cdk-github-runners might be problematic. Click here for more details.

Files changed (18) hide show
  1. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/PKG-INFO +58 -8
  2. cloudsnorkel.cdk-github-runners-0.14.0/src/cloudsnorkel.cdk_github_runners.egg-info/PKG-INFO → cloudsnorkel_cdk_github_runners-0.14.2/README.md +52 -30
  3. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/pyproject.toml +1 -1
  4. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/setup.py +4 -4
  5. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel/cdk_github_runners/__init__.py +74 -14
  6. cloudsnorkel_cdk_github_runners-0.14.2/src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py +45 -0
  7. cloudsnorkel_cdk_github_runners-0.14.2/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.2.jsii.tgz +0 -0
  8. cloudsnorkel.cdk-github-runners-0.14.0/README.md → cloudsnorkel_cdk_github_runners-0.14.2/src/cloudsnorkel.cdk_github_runners.egg-info/PKG-INFO +80 -7
  9. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel.cdk_github_runners.egg-info/SOURCES.txt +1 -1
  10. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel.cdk_github_runners.egg-info/requires.txt +2 -2
  11. cloudsnorkel.cdk-github-runners-0.14.0/src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py +0 -30
  12. cloudsnorkel.cdk-github-runners-0.14.0/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.0.jsii.tgz +0 -0
  13. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/LICENSE +0 -0
  14. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/MANIFEST.in +0 -0
  15. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/setup.cfg +0 -0
  16. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel/cdk_github_runners/py.typed +0 -0
  17. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel.cdk_github_runners.egg-info/dependency_links.txt +0 -0
  18. {cloudsnorkel.cdk-github-runners-0.14.0 → cloudsnorkel_cdk_github_runners-0.14.2}/src/cloudsnorkel.cdk_github_runners.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudsnorkel.cdk-github-runners
3
- Version: 0.14.0
3
+ Version: 0.14.2
4
4
  Summary: CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.
5
5
  Home-page: https://github.com/CloudSnorkel/cdk-github-runners.git
6
6
  Author: Amir Szekely<amir@cloudsnorkel.com>
@@ -20,6 +20,11 @@ Classifier: License :: OSI Approved
20
20
  Requires-Python: ~=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.123.0
24
+ Requires-Dist: constructs<11.0.0,>=10.0.5
25
+ Requires-Dist: jsii<2.0.0,>=1.103.1
26
+ Requires-Dist: publication>=0.0.3
27
+ Requires-Dist: typeguard<5.0.0,>=2.13.3
23
28
 
24
29
  # GitHub Self-Hosted Runners CDK Constructs
25
30
 
@@ -43,7 +48,7 @@ Self-hosted runners in AWS are useful when:
43
48
 
44
49
  * You need easy access to internal resources in your actions
45
50
  * 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)
51
+ * 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
52
  * You are using GitHub Enterprise Server
48
53
 
49
54
  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 +98,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
93
98
  ### Use
94
99
 
95
100
  ```python
101
+ from aws_cdk import App, Stack
96
102
  from cloudsnorkel.cdk_github_runners import GitHubRunners
97
103
 
98
- GitHubRunners(self, "runners")
104
+ app = App()
105
+ stack = Stack(app, "github-runners")
106
+ GitHubRunners(stack, "runners")
107
+
108
+ app.synth()
99
109
  ```
100
110
 
101
111
  </details>
@@ -112,9 +122,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
112
122
  ### Use
113
123
 
114
124
  ```python
125
+ import { App, Stack } from 'aws-cdk-lib';
115
126
  import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
116
127
 
117
- new GitHubRunners(this, "runners");
128
+ const app = new App();
129
+ const stack = new Stack(app, 'github-runners');
130
+ new GitHubRunners(stack, 'runners');
131
+
132
+ app.synth();
118
133
  ```
119
134
 
120
135
  </details>
@@ -134,9 +149,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
134
149
  ### Use
135
150
 
136
151
  ```java
152
+ import software.amazon.awscdk.App;
153
+ import software.amazon.awscdk.Stack;
137
154
  import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
138
155
 
139
- GitHubRunners.Builder.create(this, "runners").build();
156
+ public class Example {
157
+ public static void main(String[] args){
158
+ App app = new App();
159
+ Stack stack = new Stack(app, "github-runners");
160
+ GitHubRunners.Builder.create(stack, "runners").build();
161
+
162
+ app.synth();
163
+ }
164
+ }
140
165
  ```
141
166
 
142
167
  </details>
@@ -153,9 +178,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
153
178
  ### Use
154
179
 
155
180
  ```go
156
- import "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
181
+ package main
182
+
183
+ import (
184
+ "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
185
+ "github.com/aws/aws-cdk-go/awscdk/v2"
186
+ "github.com/aws/jsii-runtime-go"
187
+ )
188
+
189
+ func main() {
190
+ app := awscdk.NewApp(nil)
191
+ stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
192
+ cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
157
193
 
158
- NewGitHubRunners(this, jsii.String("runners"))
194
+ app.Synth(nil)
195
+ }
159
196
  ```
160
197
 
161
198
  </details>
@@ -172,9 +209,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
172
209
  ### Use
173
210
 
174
211
  ```csharp
212
+ using Amazon.CDK;
175
213
  using CloudSnorkel;
176
214
 
177
- new GitHubRunners(this, "runners");
215
+ namespace Example
216
+ {
217
+ sealed class Program
218
+ {
219
+ public static void Main(string[] args)
220
+ {
221
+ var app = new App();
222
+ var stack = new Stack(app, "github-runners");
223
+ new GitHubRunners(stack, "runners");
224
+ app.Synth();
225
+ }
226
+ }
227
+ }
178
228
  ```
179
229
 
180
230
  </details>
@@ -1,26 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: cloudsnorkel.cdk-github-runners
3
- Version: 0.14.0
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
  [![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)](https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners)
@@ -43,7 +20,7 @@ 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
- GitHubRunners(self, "runners")
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 GitHubRunners(this, "runners");
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
- GitHubRunners.Builder.create(this, "runners").build();
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
- import "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
153
+ package main
154
+
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{})
157
165
 
158
- NewGitHubRunners(this, jsii.String("runners"))
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
- new GitHubRunners(this, "runners");
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>
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools~=67.3.2", "wheel~=0.42"]
2
+ requires = ["setuptools~=70.0.0", "wheel~=0.42"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [tool.pyright]
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "cloudsnorkel.cdk-github-runners",
8
- "version": "0.14.0",
8
+ "version": "0.14.2",
9
9
  "description": "CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/CloudSnorkel/cdk-github-runners.git",
@@ -26,7 +26,7 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "cloudsnorkel.cdk_github_runners._jsii": [
29
- "cdk-github-runners@0.14.0.jsii.tgz"
29
+ "cdk-github-runners@0.14.2.jsii.tgz"
30
30
  ],
31
31
  "cloudsnorkel.cdk_github_runners": [
32
32
  "py.typed"
@@ -36,9 +36,9 @@ kwargs = json.loads(
36
36
  "install_requires": [
37
37
  "aws-cdk-lib>=2.123.0, <3.0.0",
38
38
  "constructs>=10.0.5, <11.0.0",
39
- "jsii>=1.98.0, <2.0.0",
39
+ "jsii>=1.103.1, <2.0.0",
40
40
  "publication>=0.0.3",
41
- "typeguard~=2.13.3"
41
+ "typeguard>=2.13.3,<5.0.0"
42
42
  ],
43
43
  "classifiers": [
44
44
  "Intended Audience :: Developers",
@@ -1,4 +1,4 @@
1
- '''
1
+ r'''
2
2
  # GitHub Self-Hosted Runners CDK Constructs
3
3
 
4
4
  [![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)](https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners)
@@ -21,7 +21,7 @@ Self-hosted runners in AWS are useful when:
21
21
 
22
22
  * You need easy access to internal resources in your actions
23
23
  * You want to pre-install some software for your actions
24
- * 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)
24
+ * 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)
25
25
  * You are using GitHub Enterprise Server
26
26
 
27
27
  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.
@@ -71,9 +71,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
71
71
  ### Use
72
72
 
73
73
  ```python
74
+ from aws_cdk import App, Stack
74
75
  from cloudsnorkel.cdk_github_runners import GitHubRunners
75
76
 
76
- GitHubRunners(self, "runners")
77
+ app = App()
78
+ stack = Stack(app, "github-runners")
79
+ GitHubRunners(stack, "runners")
80
+
81
+ app.synth()
77
82
  ```
78
83
 
79
84
  </details>
@@ -90,9 +95,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
90
95
  ### Use
91
96
 
92
97
  ```python
98
+ import { App, Stack } from 'aws-cdk-lib';
93
99
  import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
94
100
 
95
- new GitHubRunners(this, "runners");
101
+ const app = new App();
102
+ const stack = new Stack(app, 'github-runners');
103
+ new GitHubRunners(stack, 'runners');
104
+
105
+ app.synth();
96
106
  ```
97
107
 
98
108
  </details>
@@ -112,9 +122,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
112
122
  ### Use
113
123
 
114
124
  ```java
125
+ import software.amazon.awscdk.App;
126
+ import software.amazon.awscdk.Stack;
115
127
  import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
116
128
 
117
- GitHubRunners.Builder.create(this, "runners").build();
129
+ public class Example {
130
+ public static void main(String[] args){
131
+ App app = new App();
132
+ Stack stack = new Stack(app, "github-runners");
133
+ GitHubRunners.Builder.create(stack, "runners").build();
134
+
135
+ app.synth();
136
+ }
137
+ }
118
138
  ```
119
139
 
120
140
  </details>
@@ -131,9 +151,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
131
151
  ### Use
132
152
 
133
153
  ```go
134
- import "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
154
+ package main
135
155
 
136
- NewGitHubRunners(this, jsii.String("runners"))
156
+ import (
157
+ "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
158
+ "github.com/aws/aws-cdk-go/awscdk/v2"
159
+ "github.com/aws/jsii-runtime-go"
160
+ )
161
+
162
+ func main() {
163
+ app := awscdk.NewApp(nil)
164
+ stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
165
+ cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
166
+
167
+ app.Synth(nil)
168
+ }
137
169
  ```
138
170
 
139
171
  </details>
@@ -150,9 +182,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
150
182
  ### Use
151
183
 
152
184
  ```csharp
185
+ using Amazon.CDK;
153
186
  using CloudSnorkel;
154
187
 
155
- new GitHubRunners(this, "runners");
188
+ namespace Example
189
+ {
190
+ sealed class Program
191
+ {
192
+ public static void Main(string[] args)
193
+ {
194
+ var app = new App();
195
+ var stack = new Stack(app, "github-runners");
196
+ new GitHubRunners(stack, "runners");
197
+ app.Synth();
198
+ }
199
+ }
200
+ }
156
201
  ```
157
202
 
158
203
  </details>
@@ -355,7 +400,22 @@ import jsii
355
400
  import publication
356
401
  import typing_extensions
357
402
 
358
- from typeguard import check_type
403
+ import typeguard
404
+ from importlib.metadata import version as _metadata_package_version
405
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
406
+
407
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
408
+ if TYPEGUARD_MAJOR_VERSION <= 2:
409
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
410
+ else:
411
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
412
+ pass
413
+ else:
414
+ if TYPEGUARD_MAJOR_VERSION == 3:
415
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
416
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
417
+ else:
418
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
359
419
 
360
420
  from ._jsii import *
361
421
 
@@ -5906,7 +5966,7 @@ class AmiBuilder(
5906
5966
  ):
5907
5967
  '''(deprecated) An AMI builder that uses AWS Image Builder to build AMIs pre-baked with all the GitHub Actions runner requirements.
5908
5968
 
5909
- Builders can be used with {@link Ec2Runner }.
5969
+ Builders can be used with {@link Ec2RunnerProvider }.
5910
5970
 
5911
5971
  Each builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.
5912
5972
 
@@ -5931,7 +5991,7 @@ class AmiBuilder(
5931
5991
  amiBuilder: builder,
5932
5992
  });
5933
5993
 
5934
- :deprecated: use RunnerImageBuilder
5994
+ :deprecated: use RunnerImageBuilder, e.g. with Ec2RunnerProvider.imageBuilder()
5935
5995
 
5936
5996
  :stability: deprecated
5937
5997
  '''
@@ -6204,7 +6264,7 @@ class AmiBuilder(
6204
6264
  if __debug__:
6205
6265
  type_hints = typing.get_type_hints(_typecheckingstub__8088868062a70621aab7b900883cf52d9c930de8a458039564d69a7d0cc80f52)
6206
6266
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
6207
- jsii.set(self, "components", value)
6267
+ jsii.set(self, "components", value) # pyright: ignore[reportArgumentType]
6208
6268
 
6209
6269
 
6210
6270
  @jsii.implements(IRunnerImageBuilder)
@@ -7368,7 +7428,7 @@ class ContainerImageBuilder(
7368
7428
  if __debug__:
7369
7429
  type_hints = typing.get_type_hints(_typecheckingstub__f4c47d52e3f51709153fc49a53f833f06b1fd2ba44d3c86696b418a3bf88a972)
7370
7430
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
7371
- jsii.set(self, "components", value)
7431
+ jsii.set(self, "components", value) # pyright: ignore[reportArgumentType]
7372
7432
 
7373
7433
 
7374
7434
  @jsii.implements(IRunnerProvider)
@@ -10171,7 +10231,7 @@ class RunnerImageBuilder(
10171
10231
  if __debug__:
10172
10232
  type_hints = typing.get_type_hints(_typecheckingstub__705c18a1eedaa490aebad511aac32a801519a57162e30be4673a8ab87ca434dc)
10173
10233
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10174
- jsii.set(self, "components", value)
10234
+ jsii.set(self, "components", value) # pyright: ignore[reportArgumentType]
10175
10235
 
10176
10236
 
10177
10237
  class _RunnerImageBuilderProxy(RunnerImageBuilder):
@@ -0,0 +1,45 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
4
+ import abc
5
+ import builtins
6
+ import datetime
7
+ import enum
8
+ import typing
9
+
10
+ import jsii
11
+ import publication
12
+ import typing_extensions
13
+
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
30
+
31
+ import aws_cdk._jsii
32
+ import constructs._jsii
33
+
34
+ __jsii_assembly__ = jsii.JSIIAssembly.load(
35
+ "@cloudsnorkel/cdk-github-runners",
36
+ "0.14.2",
37
+ __name__[0:-6],
38
+ "cdk-github-runners@0.14.2.jsii.tgz",
39
+ )
40
+
41
+ __all__ = [
42
+ "__jsii_assembly__",
43
+ ]
44
+
45
+ publication.publish()
@@ -1,3 +1,31 @@
1
+ Metadata-Version: 2.1
2
+ Name: cloudsnorkel.cdk-github-runners
3
+ Version: 0.14.2
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
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.123.0
24
+ Requires-Dist: constructs<11.0.0,>=10.0.5
25
+ Requires-Dist: jsii<2.0.0,>=1.103.1
26
+ Requires-Dist: publication>=0.0.3
27
+ Requires-Dist: typeguard<5.0.0,>=2.13.3
28
+
1
29
  # GitHub Self-Hosted Runners CDK Constructs
2
30
 
3
31
  [![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)](https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners)
@@ -20,7 +48,7 @@ Self-hosted runners in AWS are useful when:
20
48
 
21
49
  * You need easy access to internal resources in your actions
22
50
  * You want to pre-install some software for your actions
23
- * 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)
51
+ * 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)
24
52
  * You are using GitHub Enterprise Server
25
53
 
26
54
  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.
@@ -70,9 +98,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
70
98
  ### Use
71
99
 
72
100
  ```python
101
+ from aws_cdk import App, Stack
73
102
  from cloudsnorkel.cdk_github_runners import GitHubRunners
74
103
 
75
- GitHubRunners(self, "runners")
104
+ app = App()
105
+ stack = Stack(app, "github-runners")
106
+ GitHubRunners(stack, "runners")
107
+
108
+ app.synth()
76
109
  ```
77
110
 
78
111
  </details>
@@ -89,9 +122,14 @@ You can also create your own provider by implementing `IRunnerProvider`.
89
122
  ### Use
90
123
 
91
124
  ```python
125
+ import { App, Stack } from 'aws-cdk-lib';
92
126
  import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';
93
127
 
94
- new GitHubRunners(this, "runners");
128
+ const app = new App();
129
+ const stack = new Stack(app, 'github-runners');
130
+ new GitHubRunners(stack, 'runners');
131
+
132
+ app.synth();
95
133
  ```
96
134
 
97
135
  </details>
@@ -111,9 +149,19 @@ You can also create your own provider by implementing `IRunnerProvider`.
111
149
  ### Use
112
150
 
113
151
  ```java
152
+ import software.amazon.awscdk.App;
153
+ import software.amazon.awscdk.Stack;
114
154
  import com.cloudsnorkel.cdk.github.runners.GitHubRunners;
115
155
 
116
- GitHubRunners.Builder.create(this, "runners").build();
156
+ public class Example {
157
+ public static void main(String[] args){
158
+ App app = new App();
159
+ Stack stack = new Stack(app, "github-runners");
160
+ GitHubRunners.Builder.create(stack, "runners").build();
161
+
162
+ app.synth();
163
+ }
164
+ }
117
165
  ```
118
166
 
119
167
  </details>
@@ -130,9 +178,21 @@ You can also create your own provider by implementing `IRunnerProvider`.
130
178
  ### Use
131
179
 
132
180
  ```go
133
- import "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
181
+ package main
182
+
183
+ import (
184
+ "github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners"
185
+ "github.com/aws/aws-cdk-go/awscdk/v2"
186
+ "github.com/aws/jsii-runtime-go"
187
+ )
188
+
189
+ func main() {
190
+ app := awscdk.NewApp(nil)
191
+ stack := awscdk.NewStack(app, jsii.String("github-runners"), &awscdk.StackProps{})
192
+ cloudsnorkelcdkgithubrunners.NewGitHubRunners(stack, jsii.String("runners"), &cloudsnorkelcdkgithubrunners.GitHubRunnersProps{})
134
193
 
135
- NewGitHubRunners(this, jsii.String("runners"))
194
+ app.Synth(nil)
195
+ }
136
196
  ```
137
197
 
138
198
  </details>
@@ -149,9 +209,22 @@ You can also create your own provider by implementing `IRunnerProvider`.
149
209
  ### Use
150
210
 
151
211
  ```csharp
212
+ using Amazon.CDK;
152
213
  using CloudSnorkel;
153
214
 
154
- new GitHubRunners(this, "runners");
215
+ namespace Example
216
+ {
217
+ sealed class Program
218
+ {
219
+ public static void Main(string[] args)
220
+ {
221
+ var app = new App();
222
+ var stack = new Stack(app, "github-runners");
223
+ new GitHubRunners(stack, "runners");
224
+ app.Synth();
225
+ }
226
+ }
227
+ }
155
228
  ```
156
229
 
157
230
  </details>
@@ -11,4 +11,4 @@ src/cloudsnorkel.cdk_github_runners.egg-info/top_level.txt
11
11
  src/cloudsnorkel/cdk_github_runners/__init__.py
12
12
  src/cloudsnorkel/cdk_github_runners/py.typed
13
13
  src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py
14
- src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.0.jsii.tgz
14
+ src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.2.jsii.tgz
@@ -1,5 +1,5 @@
1
1
  aws-cdk-lib<3.0.0,>=2.123.0
2
2
  constructs<11.0.0,>=10.0.5
3
- jsii<2.0.0,>=1.98.0
3
+ jsii<2.0.0,>=1.103.1
4
4
  publication>=0.0.3
5
- typeguard~=2.13.3
5
+ typeguard<5.0.0,>=2.13.3
@@ -1,30 +0,0 @@
1
- from pkgutil import extend_path
2
- __path__ = extend_path(__path__, __name__)
3
-
4
- import abc
5
- import builtins
6
- import datetime
7
- import enum
8
- import typing
9
-
10
- import jsii
11
- import publication
12
- import typing_extensions
13
-
14
- from typeguard import check_type
15
-
16
- import aws_cdk._jsii
17
- import constructs._jsii
18
-
19
- __jsii_assembly__ = jsii.JSIIAssembly.load(
20
- "@cloudsnorkel/cdk-github-runners",
21
- "0.14.0",
22
- __name__[0:-6],
23
- "cdk-github-runners@0.14.0.jsii.tgz",
24
- )
25
-
26
- __all__ = [
27
- "__jsii_assembly__",
28
- ]
29
-
30
- publication.publish()