@cloudsnorkel/cdk-github-runners 0.1.0 → 0.3.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.
- package/.gitattributes +6 -1
- package/.jsii +1663 -596
- package/API.md +1105 -107
- package/README.md +63 -48
- package/SETUP_GITHUB.md +56 -19
- package/demo-thumbnail.jpg +0 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.js +7 -1
- package/lib/lambdas/build-image/index.js +121 -0
- package/lib/lambdas/delete-runner/index.js +29 -15
- package/lib/lambdas/setup/index.js +9103 -0
- package/lib/lambdas/status/index.js +33 -14
- package/lib/lambdas/token-retriever/index.js +20 -10
- package/lib/lambdas/update-lambda/index.js +55 -0
- package/lib/lambdas/webhook-handler/index.js +21 -8
- package/lib/providers/codebuild.d.ts +32 -3
- package/lib/providers/codebuild.js +58 -13
- package/lib/providers/common.d.ts +87 -7
- package/lib/providers/common.js +64 -4
- package/lib/providers/docker-images/codebuild/linux-arm64/Dockerfile +59 -0
- package/lib/providers/docker-images/codebuild/{Dockerfile → linux-x64/Dockerfile} +10 -5
- package/lib/providers/docker-images/fargate/linux-arm64/Dockerfile +41 -0
- package/lib/providers/docker-images/fargate/{runner.sh → linux-arm64/runner.sh} +0 -0
- package/lib/providers/docker-images/fargate/{Dockerfile → linux-x64/Dockerfile} +10 -5
- package/lib/providers/docker-images/fargate/linux-x64/runner.sh +5 -0
- package/lib/providers/docker-images/lambda/linux-arm64/Dockerfile +32 -0
- package/lib/providers/docker-images/lambda/{runner.js → linux-arm64/runner.js} +0 -0
- package/lib/providers/docker-images/lambda/{runner.sh → linux-arm64/runner.sh} +0 -0
- package/lib/providers/docker-images/lambda/linux-x64/Dockerfile +31 -0
- package/lib/providers/docker-images/lambda/linux-x64/runner.js +29 -0
- package/lib/providers/docker-images/lambda/linux-x64/runner.sh +12 -0
- package/lib/providers/fargate.d.ts +46 -2
- package/lib/providers/fargate.js +65 -10
- package/lib/providers/image-builders/codebuild.d.ts +170 -0
- package/lib/providers/image-builders/codebuild.js +340 -0
- package/lib/providers/image-builders/static.d.ts +29 -0
- package/lib/providers/image-builders/static.js +58 -0
- package/lib/providers/lambda.d.ts +27 -2
- package/lib/providers/lambda.js +88 -9
- package/lib/runner.d.ts +5 -16
- package/lib/runner.js +38 -26
- package/lib/secrets.d.ts +4 -1
- package/lib/secrets.js +12 -2
- package/lib/utils.d.ts +2 -2
- package/lib/utils.js +14 -3
- package/lib/webhook.d.ts +0 -1
- package/lib/webhook.js +2 -1
- package/package.json +12 -10
- package/changelog.md +0 -11
- package/lib/index.d.ts.map +0 -1
- package/lib/providers/codebuild.d.ts.map +0 -1
- package/lib/providers/common.d.ts.map +0 -1
- package/lib/providers/docker-images/lambda/Dockerfile +0 -27
- package/lib/providers/fargate.d.ts.map +0 -1
- package/lib/providers/lambda.d.ts.map +0 -1
- package/lib/runner.d.ts.map +0 -1
- package/lib/secrets.d.ts.map +0 -1
- package/lib/utils.d.ts.map +0 -1
- package/lib/webhook.d.ts.map +0 -1
- package/releasetag.txt +0 -1
- package/version.txt +0 -1
package/lib/providers/common.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b, _c;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.RunnerVersion = void 0;
|
|
4
|
+
exports.Os = exports.Architecture = exports.RunnerVersion = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
/**
|
|
7
7
|
* Defines desired GitHub Actions runner version.
|
|
@@ -29,5 +29,65 @@ class RunnerVersion {
|
|
|
29
29
|
}
|
|
30
30
|
exports.RunnerVersion = RunnerVersion;
|
|
31
31
|
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
-
RunnerVersion[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerVersion", version: "0.
|
|
33
|
-
|
|
32
|
+
RunnerVersion[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerVersion", version: "0.3.0" };
|
|
33
|
+
/**
|
|
34
|
+
* CPU architecture enum for an image.
|
|
35
|
+
*/
|
|
36
|
+
class Architecture {
|
|
37
|
+
constructor(name) {
|
|
38
|
+
this.name = name;
|
|
39
|
+
}
|
|
40
|
+
static of(architecture) {
|
|
41
|
+
return new Architecture(architecture);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Checks if the given architecture is the same as this one.
|
|
45
|
+
*
|
|
46
|
+
* @param arch architecture to compare
|
|
47
|
+
*/
|
|
48
|
+
is(arch) {
|
|
49
|
+
return arch.name == this.name;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.Architecture = Architecture;
|
|
53
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
54
|
+
Architecture[_b] = { fqn: "@cloudsnorkel/cdk-github-runners.Architecture", version: "0.3.0" };
|
|
55
|
+
/**
|
|
56
|
+
* ARM64
|
|
57
|
+
*/
|
|
58
|
+
Architecture.ARM64 = Architecture.of('ARM64');
|
|
59
|
+
/**
|
|
60
|
+
* X86_64
|
|
61
|
+
*/
|
|
62
|
+
Architecture.X86_64 = Architecture.of('X86_64');
|
|
63
|
+
/**
|
|
64
|
+
* OS enum for an image.
|
|
65
|
+
*/
|
|
66
|
+
class Os {
|
|
67
|
+
constructor(name) {
|
|
68
|
+
this.name = name;
|
|
69
|
+
}
|
|
70
|
+
static of(os) {
|
|
71
|
+
return new Os(os);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Checks if the given OS is the same as this one.
|
|
75
|
+
*
|
|
76
|
+
* @param os OS to compare
|
|
77
|
+
*/
|
|
78
|
+
is(os) {
|
|
79
|
+
return os.name == this.name;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.Os = Os;
|
|
83
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
84
|
+
Os[_c] = { fqn: "@cloudsnorkel/cdk-github-runners.Os", version: "0.3.0" };
|
|
85
|
+
/**
|
|
86
|
+
* Linux
|
|
87
|
+
*/
|
|
88
|
+
Os.LINUX = Os.of('Linux');
|
|
89
|
+
/**
|
|
90
|
+
* Windows
|
|
91
|
+
*/
|
|
92
|
+
Os.WINDOWS = Os.of('Windows');
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQWEsYUFBYTtJQW1CeEIsWUFBK0IsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDOUMsQ0FBQztJQW5CRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZTtRQUNwQyxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBakJILHNDQXFCQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFldkIsWUFBb0MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFDaEQsQ0FBQztJQUxPLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBb0I7UUFDcEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBS0Q7Ozs7TUFJRTtJQUNLLEVBQUUsQ0FBQyxJQUFrQjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDOztBQXpCSCxvQ0EwQkM7OztBQXpCQzs7R0FFRztBQUNvQixrQkFBSyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFeEQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBbUI1RDs7R0FFRztBQUNILE1BQWEsRUFBRTtJQWViLFlBQW9DLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ2hELENBQUM7SUFMTyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBS0Q7Ozs7TUFJRTtJQUNLLEVBQUUsQ0FBQyxFQUFNO1FBQ2QsT0FBTyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs7QUF6QkgsZ0JBMEJDOzs7QUF6QkM7O0VBRUU7QUFDcUIsUUFBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFOUM7O0VBRUU7QUFDcUIsVUFBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NfZWMyIGFzIGVjMiwgYXdzX2VjciBhcyBlY3IsIGF3c19pYW0gYXMgaWFtLCBhd3NfbG9ncyBhcyBsb2dzLCBhd3Nfc3RlcGZ1bmN0aW9ucyBhcyBzdGVwZnVuY3Rpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIERlZmluZXMgZGVzaXJlZCBHaXRIdWIgQWN0aW9ucyBydW5uZXIgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bm5lclZlcnNpb24ge1xuICAvKipcbiAgICogVXNlIHRoZSBsYXRlc3QgdmVyc2lvbiBhdmFpbGFibGUgYXQgdGhlIHRpbWUgdGhlIHJ1bm5lciBwcm92aWRlciBpbWFnZSBpcyBidWlsdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbGF0ZXN0KCk6IFJ1bm5lclZlcnNpb24ge1xuICAgIHJldHVybiBuZXcgUnVubmVyVmVyc2lvbignbGF0ZXN0Jyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgc3BlY2lmaWMgdmVyc2lvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYWN0aW9ucy9ydW5uZXIvcmVsZWFzZXNcbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gR2l0SHViIFJ1bm5lciB2ZXJzaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNwZWNpZmljKHZlcnNpb246IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgUnVubmVyVmVyc2lvbih2ZXJzaW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihyZWFkb25seSB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgfVxufVxuXG4vKipcbiAqIENQVSBhcmNoaXRlY3R1cmUgZW51bSBmb3IgYW4gaW1hZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcmNoaXRlY3R1cmUge1xuICAvKipcbiAgICogQVJNNjRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVJNNjQgPSBBcmNoaXRlY3R1cmUub2YoJ0FSTTY0Jyk7XG5cbiAgLyoqXG4gICAqIFg4Nl82NFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBYODZfNjQgPSBBcmNoaXRlY3R1cmUub2YoJ1g4Nl82NCcpO1xuXG4gIHByaXZhdGUgc3RhdGljIG9mKGFyY2hpdGVjdHVyZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBBcmNoaXRlY3R1cmUoYXJjaGl0ZWN0dXJlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZykge1xuICB9XG5cbiAgLyoqXG4gICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmNoaXRlY3R1cmUgaXMgdGhlIHNhbWUgYXMgdGhpcyBvbmUuXG4gICpcbiAgKiBAcGFyYW0gYXJjaCBhcmNoaXRlY3R1cmUgdG8gY29tcGFyZVxuICAqL1xuICBwdWJsaWMgaXMoYXJjaDogQXJjaGl0ZWN0dXJlKSB7XG4gICAgcmV0dXJuIGFyY2gubmFtZSA9PSB0aGlzLm5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBPUyBlbnVtIGZvciBhbiBpbWFnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9zIHtcbiAgLyoqXG4gICogTGludXhcbiAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5VWCA9IE9zLm9mKCdMaW51eCcpO1xuXG4gIC8qKlxuICAqIFdpbmRvd3NcbiAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXSU5ET1dTID0gT3Mub2YoJ1dpbmRvd3MnKTtcblxuICBwcml2YXRlIHN0YXRpYyBvZihvczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBPcyhvcyk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcpIHtcbiAgfVxuXG4gIC8qKlxuICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gT1MgaXMgdGhlIHNhbWUgYXMgdGhpcyBvbmUuXG4gICpcbiAgKiBAcGFyYW0gb3MgT1MgdG8gY29tcGFyZVxuICAqL1xuICBwdWJsaWMgaXMob3M6IE9zKSB7XG4gICAgcmV0dXJuIG9zLm5hbWUgPT0gdGhpcy5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVubmVySW1hZ2Uge1xuICAvKipcbiAgICogRUNSIHJlcG9zaXRvcnkgY29udGFpbmluZyB0aGUgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVJlcG9zaXRvcnk6IGVjci5JUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogU3RhdGljIGltYWdlIHRhZyB3aGVyZSB0aGUgaW1hZ2Ugd2lsbCBiZSBwdXNoZWQuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVRhZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbWFnZSBkaWdlc3QgZm9yIHByb3ZpZGVycyB0aGF0IG5lZWQgdG8ga25vdyB0aGUgZGlnZXN0IGxpa2UgTGFtYmRhLlxuICAgKlxuICAgKiBXQVJOSU5HOiB0aGUgZGlnZXN0IG1pZ2h0IGNoYW5nZSB3aGVuIHRoZSBidWlsZGVyIGF1dG9tYXRpY2FsbHkgcmVidWlsZHMgdGhlIGltYWdlIG9uIGEgc2NoZWR1bGUuIERvIG5vdCBleHBlY3QgZm9yIHRoaXMgZGlnZXN0IHRvIHN0YXkgdGhlIHNhbWUgYmV0d2VlbiBkZXBsb3lzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VEaWdlc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogQXJjaGl0ZWN0dXJlIG9mIHRoZSBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBPUyB0eXBlIG9mIHRoZSBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IG9zOiBPcztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGNvbnN0cnVjdHMgdGhhdCBidWlsZCBhbiBpbWFnZSB0aGF0IGNhbiBiZSB1c2VkIGluIHtAbGluayBJUnVubmVyUHJvdmlkZXJ9LlxuICpcbiAqIEFueXRoaW5nIHRoYXQgZW5kcyB1cCB3aXRoIGFuIEVDUiByZXBvc2l0b3J5IGNvbnRhaW5pbmcgYSBEb2NrZXIgaW1hZ2UgdGhhdCBydW5zIEdpdEh1YiBzZWxmLWhvc3RlZCBydW5uZXJzIGNhbiBiZSB1c2VkLiBBIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBjb3VsZCBldmVuIHBvaW50IHRvIGFuIGV4aXN0aW5nIGltYWdlIGFuZCBub3RoaW5nIGVsc2UuXG4gKlxuICogSXQncyBpbXBvcnRhbnQgdGhhdCB0aGUgc3BlY2lmaWVkIGltYWdlIHRhZyBiZSBhdmFpbGFibGUgYXQgdGhlIHRpbWUgdGhlIHJlcG9zaXRvcnkgaXMgYXZhaWxhYmxlLiBQcm92aWRlcnMgdXN1YWxseSBhc3N1bWUgdGhlIGltYWdlIGlzIHJlYWR5IGFuZCB3aWxsIGZhaWwgaWYgaXQncyBub3QuXG4gKlxuICogVGhlIGltYWdlIGNhbiBiZSBmdXJ0aGVyIHVwZGF0ZWQgb3ZlciB0aW1lIG1hbnVhbGx5IG9yIHVzaW5nIGEgc2NoZWR1bGUgYXMgbG9uZyBhcyBpdCBpcyBhbHdheXMgd3JpdHRlbiB0byB0aGUgc2FtZSB0YWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlQnVpbGRlciB7XG4gIC8qKlxuICAgKiBFQ1IgcmVwb3NpdG9yeSBjb250YWluaW5nIHRoZSBpbWFnZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGUgaW1hZ2UgaXMgYm91bmQgdG8gbXVsdGlwbGUgcHJvdmlkZXJzLiBNYWtlIHN1cmUgeW91IGNhY2hlIHRoZSBpbWFnZSB3aGVuIGltcGxlbWVudGluZyBvciByZXR1cm4gYW4gZXJyb3IgaWYgdGhpcyBidWlsZGVyIGRvZXNuJ3Qgc3VwcG9ydCByZXVzaW5nIGltYWdlcy5cbiAgICpcbiAgICogQHJldHVybiBpbWFnZVxuICAgKi9cbiAgYmluZCgpOiBSdW5uZXJJbWFnZTtcbn1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIHJ1bm5lciBwcm92aWRlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVubmVyUHJvdmlkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgbG9nIGV2ZW50cyBhcmUga2VwdCBpbiBDbG91ZFdhdGNoIExvZ3MuIFdoZW4gdXBkYXRpbmdcbiAgICogdGhpcyBwcm9wZXJ0eSwgdW5zZXR0aW5nIGl0IGRvZXNuJ3QgcmVtb3ZlIHRoZSBsb2cgcmV0ZW50aW9uIHBvbGljeS4gVG9cbiAgICogcmVtb3ZlIHRoZSByZXRlbnRpb24gcG9saWN5LCBzZXQgdGhlIHZhbHVlIHRvIGBJTkZJTklURWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEhcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBqb2IgcGFyYW1ldGVycyBhcyBwYXJzZWQgZnJvbSB0aGUgd2ViaG9vayBldmVudC4gUGFzcyB0aGVzZSBpbnRvIHlvdXIgcnVubmVyIGV4ZWN1dG9yIGFuZCBydW4gc29tZXRoaW5nIGxpa2U6XG4gKlxuICogYGBgc2hcbiAqIC4vY29uZmlnLnNoIC0tdW5hdHRlbmRlZCAtLXVybCBcImh0dHBzOi8vJHtHSVRIVUJfRE9NQUlOfS8ke09XTkVSfS8ke1JFUE99XCIgLS10b2tlbiBcIiR7UlVOTkVSX1RPS0VOfVwiIC0tZXBoZW1lcmFsIC0td29yayBfd29yayAtLWxhYmVscyBcIiR7UlVOTkVSX0xBQkVMfVwiIC0tbmFtZSBcIiR7UlVOTkVSX05BTUV9XCIgLS1kaXNhYmxldXBkYXRlXG4gKiBgYGBcbiAqXG4gKiBBbGwgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHN0ZXAgZnVuY3Rpb24gcGF0aHMgYW5kIHRoZXJlZm9yZSBtdXN0IGJlIHVzZWQgb25seSBpbiBzdGVwIGZ1bmN0aW9uIHRhc2sgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5uZXJSdW50aW1lUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHJ1bm5lciB0b2tlbiB1c2VkIHRvIHJlZ2lzdGVyIHRva2VuLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyVG9rZW5QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gZGVzaXJlZCBydW5uZXIgbmFtZS4gV2Ugc3BlY2lmaWNhbGx5IHNldCB0aGUgbmFtZSB0byBtYWtlIHRyb3VibGVzaG9vdGluZyBlYXNpZXIuXG4gICAqL1xuICByZWFkb25seSBydW5uZXJOYW1lUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIEdpdEh1YiBkb21haW4uIE1vc3Qgb2YgdGhlIHRpbWUgdGhpcyB3aWxsIGJlIGdpdGh1Yi5jb20gYnV0IGZvciBzZWxmLWhvc3RlZCBHaXRIdWIgaW5zdGFuY2VzLCB0aGlzIHdpbGwgYmUgZGlmZmVyZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViRG9tYWluUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHJlcG9zdGlyb3kgb3duZXIgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG93bmVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHJlcG9zaXRvcnkgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9QYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBhbGwgcnVubmVyIHByb3ZpZGVycy4gSW1wbGVtZW50YXRpb25zIGNyZWF0ZSBhbGwgcmVxdWlyZWQgcmVzb3VyY2VzIGFuZCByZXR1cm4gYSBzdGVwIGZ1bmN0aW9uIHRhc2sgdGhhdCBzdGFydHMgdGhvc2UgcmVzb3VyY2VzIGZyb20ge0BsaW5rIGdldFN0ZXBGdW5jdGlvblRhc2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSdW5uZXJQcm92aWRlciBleHRlbmRzIGVjMi5JQ29ubmVjdGFibGUsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIEdpdEh1YiBBY3Rpb25zIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJ1bm5lciBwcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBuZXR3b3JrIGluIHdoaWNoIHJ1bm5lcnMgd2lsbCBiZSBwbGFjZWQuXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIHJ1bm5lcnMuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwPzogZWMyLklTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBzdGVwIGZ1bmN0aW9uIHRhc2tzIHRoYXQgZXhlY3V0ZSB0aGUgcnVubmVyLlxuICAgKlxuICAgKiBDYWxsZWQgYnkgR2l0aHViUnVubmVycyBhbmQgc2hvdWxkbid0IGJlIGNhbGxlZCBtYW51YWxseS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgc3BlY2lmaWMgYnVpbGQgcGFyYW1ldGVyc1xuICAgKi9cbiAgZ2V0U3RlcEZ1bmN0aW9uVGFzayhwYXJhbWV0ZXJzOiBSdW5uZXJSdW50aW1lUGFyYW1ldGVycyk6IHN0ZXBmdW5jdGlvbnMuSUNoYWluYWJsZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
ARG BASE_IMAGE="public.ecr.aws/lts/ubuntu:20.04"
|
|
2
|
+
FROM $BASE_IMAGE
|
|
3
|
+
|
|
4
|
+
# setup user
|
|
5
|
+
RUN addgroup runner && adduser --system --disabled-password --home /home/runner --ingroup runner runner
|
|
6
|
+
|
|
7
|
+
# add dependencies and sudo
|
|
8
|
+
ARG EXTRA_PACKAGES=""
|
|
9
|
+
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl sudo jq bash zip unzip iptables software-properties-common $EXTRA_PACKAGES && \
|
|
10
|
+
usermod -aG sudo runner && \
|
|
11
|
+
echo "%sudo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/runner
|
|
12
|
+
|
|
13
|
+
# add latest git
|
|
14
|
+
RUN add-apt-repository ppa:git-core/ppa && apt update && apt-get install -y git
|
|
15
|
+
|
|
16
|
+
# add awscli
|
|
17
|
+
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o awscliv2.zip && \
|
|
18
|
+
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
19
|
+
|
|
20
|
+
# add ghcli
|
|
21
|
+
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && \
|
|
22
|
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \
|
|
23
|
+
apt update && \
|
|
24
|
+
apt install -y gh
|
|
25
|
+
|
|
26
|
+
# setup working directory
|
|
27
|
+
WORKDIR /home/runner
|
|
28
|
+
|
|
29
|
+
# add runner without github's api which is rate limited
|
|
30
|
+
ARG RUNNER_VERSION=latest
|
|
31
|
+
RUN if [ "$RUNNER_VERSION" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
32
|
+
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
33
|
+
tar xzf "actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
34
|
+
rm actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz && \
|
|
35
|
+
./bin/installdependencies.sh
|
|
36
|
+
|
|
37
|
+
# docker-in-docker
|
|
38
|
+
ARG DOCKER_CHANNEL="stable"
|
|
39
|
+
ARG DIND_COMMIT="42b1175eda071c0e9121e1d64345928384a93df1"
|
|
40
|
+
ARG DOCKER_VERSION="20.10.16"
|
|
41
|
+
ARG DOCKER_COMPOSE_VERSION="2.5.1"
|
|
42
|
+
|
|
43
|
+
RUN curl -fsSL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/aarch64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz && \
|
|
44
|
+
tar --strip-components 1 -C /usr/local/bin/ -xzf docker.tgz && \
|
|
45
|
+
rm docker.tgz && \
|
|
46
|
+
# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box
|
|
47
|
+
addgroup dockremap && \
|
|
48
|
+
useradd -g dockremap dockremap && \
|
|
49
|
+
echo 'dockremap:165536:65536' >> /etc/subuid && \
|
|
50
|
+
echo 'dockremap:165536:65536' >> /etc/subgid && \
|
|
51
|
+
curl -fsSL "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -o /usr/local/bin/dind && \
|
|
52
|
+
curl -fsSL https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-aarch64 -o /usr/local/bin/docker-compose && \
|
|
53
|
+
chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose && \
|
|
54
|
+
addgroup docker && usermod -aG docker runner
|
|
55
|
+
|
|
56
|
+
VOLUME /var/lib/docker
|
|
57
|
+
|
|
58
|
+
# configure runner
|
|
59
|
+
USER runner
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
ARG BASE_IMAGE="public.ecr.aws/lts/ubuntu:20.04"
|
|
2
|
+
FROM $BASE_IMAGE
|
|
2
3
|
|
|
3
4
|
# setup user
|
|
4
5
|
RUN addgroup runner && adduser --system --disabled-password --home /home/runner --ingroup runner runner
|
|
5
6
|
|
|
6
7
|
# add dependencies and sudo
|
|
7
|
-
|
|
8
|
+
ARG EXTRA_PACKAGES=""
|
|
9
|
+
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl sudo jq bash zip unzip iptables software-properties-common $EXTRA_PACKAGES && \
|
|
8
10
|
usermod -aG sudo runner && \
|
|
9
11
|
echo "%sudo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/runner
|
|
10
12
|
|
|
13
|
+
# add latest git
|
|
14
|
+
RUN add-apt-repository ppa:git-core/ppa && apt update && apt-get install -y git
|
|
15
|
+
|
|
11
16
|
# add awscli
|
|
12
17
|
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zip && \
|
|
13
18
|
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
@@ -21,9 +26,9 @@ RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | s
|
|
|
21
26
|
# setup working directory
|
|
22
27
|
WORKDIR /home/runner
|
|
23
28
|
|
|
24
|
-
# add runner
|
|
25
|
-
ARG RUNNER_VERSION
|
|
26
|
-
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -
|
|
29
|
+
# add runner without github's api which is rate limited
|
|
30
|
+
ARG RUNNER_VERSION=latest
|
|
31
|
+
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
27
32
|
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
28
33
|
tar xzf "actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
29
34
|
rm actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz && \
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
ARG BASE_IMAGE="public.ecr.aws/lts/ubuntu:20.04"
|
|
2
|
+
FROM $BASE_IMAGE
|
|
3
|
+
|
|
4
|
+
# setup user
|
|
5
|
+
RUN addgroup runner && adduser --system --disabled-password --home /home/runner --ingroup runner runner
|
|
6
|
+
|
|
7
|
+
# add dependencies and sudo
|
|
8
|
+
ARG EXTRA_PACKAGES=""
|
|
9
|
+
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl sudo jq bash zip unzip software-properties-common $EXTRA_PACKAGES && \
|
|
10
|
+
usermod -aG sudo runner && \
|
|
11
|
+
echo "%sudo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/runner
|
|
12
|
+
|
|
13
|
+
# add latest git
|
|
14
|
+
RUN add-apt-repository ppa:git-core/ppa && apt update && apt-get install -y git
|
|
15
|
+
|
|
16
|
+
# add awscli
|
|
17
|
+
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o awscliv2.zip && \
|
|
18
|
+
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
19
|
+
|
|
20
|
+
# add ghcli
|
|
21
|
+
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && \
|
|
22
|
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \
|
|
23
|
+
apt update && \
|
|
24
|
+
apt install -y gh
|
|
25
|
+
|
|
26
|
+
# setup working directory
|
|
27
|
+
WORKDIR /home/runner
|
|
28
|
+
|
|
29
|
+
# add runner without github's api which is rate limited
|
|
30
|
+
ARG RUNNER_VERSION=latest
|
|
31
|
+
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
32
|
+
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
33
|
+
tar xzf "actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
34
|
+
rm actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz && \
|
|
35
|
+
./bin/installdependencies.sh
|
|
36
|
+
|
|
37
|
+
# configure runner
|
|
38
|
+
USER runner
|
|
39
|
+
|
|
40
|
+
ADD runner.sh .
|
|
41
|
+
CMD ["bash", "/home/runner/runner.sh"]
|
|
File without changes
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
ARG BASE_IMAGE="public.ecr.aws/lts/ubuntu:20.04"
|
|
2
|
+
FROM $BASE_IMAGE
|
|
2
3
|
|
|
3
4
|
# setup user
|
|
4
5
|
RUN addgroup runner && adduser --system --disabled-password --home /home/runner --ingroup runner runner
|
|
5
6
|
|
|
6
7
|
# add dependencies and sudo
|
|
7
|
-
|
|
8
|
+
ARG EXTRA_PACKAGES=""
|
|
9
|
+
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl sudo jq bash zip unzip software-properties-common $EXTRA_PACKAGES && \
|
|
8
10
|
usermod -aG sudo runner && \
|
|
9
11
|
echo "%sudo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/runner
|
|
10
12
|
|
|
13
|
+
# add latest git
|
|
14
|
+
RUN add-apt-repository ppa:git-core/ppa && apt update && apt-get install -y git
|
|
15
|
+
|
|
11
16
|
# add awscli
|
|
12
17
|
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zip && \
|
|
13
18
|
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
@@ -21,9 +26,9 @@ RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | s
|
|
|
21
26
|
# setup working directory
|
|
22
27
|
WORKDIR /home/runner
|
|
23
28
|
|
|
24
|
-
# add runner
|
|
25
|
-
ARG RUNNER_VERSION
|
|
26
|
-
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -
|
|
29
|
+
# add runner without github's api which is rate limited
|
|
30
|
+
ARG RUNNER_VERSION=latest
|
|
31
|
+
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
27
32
|
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
28
33
|
tar xzf "actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
29
34
|
rm actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz && \
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# https://docs.aws.amazon.com/lambda/latest/dg/images-create.html
|
|
2
|
+
|
|
3
|
+
ARG BASE_IMAGE="public.ecr.aws/lambda/nodejs:14-arm64"
|
|
4
|
+
FROM $BASE_IMAGE
|
|
5
|
+
|
|
6
|
+
WORKDIR /runner
|
|
7
|
+
|
|
8
|
+
# add dependencies
|
|
9
|
+
ARG EXTRA_PACKAGES=""
|
|
10
|
+
RUN yum update -y && yum install -y jq tar gzip bzip2 which binutils git zip unzip $EXTRA_PACKAGES
|
|
11
|
+
|
|
12
|
+
# add awscli
|
|
13
|
+
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o awscliv2.zip && \
|
|
14
|
+
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
15
|
+
|
|
16
|
+
# add ghcli
|
|
17
|
+
RUN curl -fsSSL https://cli.github.com/packages/rpm/gh-cli.repo -o /etc/yum.repos.d/gh-cli.repo && \
|
|
18
|
+
yum install -y gh
|
|
19
|
+
|
|
20
|
+
# add runner without github's api which is rate limited
|
|
21
|
+
ARG RUNNER_VERSION=latest
|
|
22
|
+
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
23
|
+
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
24
|
+
tar xzf "actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz" && \
|
|
25
|
+
rm actions-runner-linux-arm64-${RUNNER_VERSION}.tar.gz && \
|
|
26
|
+
yum install -y openssl-libs krb5-libs zlib libicu60
|
|
27
|
+
# doesn't work on CentOS - RUN ./bin/installdependencies.sh
|
|
28
|
+
|
|
29
|
+
# prepare for execution
|
|
30
|
+
WORKDIR ${LAMBDA_TASK_ROOT}
|
|
31
|
+
COPY runner.js runner.sh ${LAMBDA_TASK_ROOT}/
|
|
32
|
+
CMD ["runner.handler"]
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# https://docs.aws.amazon.com/lambda/latest/dg/images-create.html
|
|
2
|
+
|
|
3
|
+
ARG BASE_IMAGE="public.ecr.aws/lambda/nodejs:14-x86_64"
|
|
4
|
+
FROM $BASE_IMAGE
|
|
5
|
+
|
|
6
|
+
WORKDIR /runner
|
|
7
|
+
|
|
8
|
+
# add dependencies
|
|
9
|
+
ARG EXTRA_PACKAGES=""
|
|
10
|
+
RUN yum update -y && yum install -y jq tar gzip bzip2 which binutils git zip unzip $EXTRA_PACKAGES
|
|
11
|
+
|
|
12
|
+
# add awscli
|
|
13
|
+
RUN curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zip && \
|
|
14
|
+
unzip -q awscliv2.zip && ./aws/install && rm -rf awscliv2.zip aws
|
|
15
|
+
|
|
16
|
+
# add ghcli
|
|
17
|
+
RUN curl -fsSSL https://cli.github.com/packages/rpm/gh-cli.repo -o /etc/yum.repos.d/gh-cli.repo && \
|
|
18
|
+
yum install -y gh
|
|
19
|
+
|
|
20
|
+
# add runner without github's api which is rate limited
|
|
21
|
+
ARG RUNNER_VERSION=latest
|
|
22
|
+
RUN if [ "${RUNNER_VERSION}" = "latest" ]; then RUNNER_VERSION=`curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest | grep -oE "[^/v]+$"`; fi && \
|
|
23
|
+
curl -fsSLO "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
24
|
+
tar xzf "actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
|
|
25
|
+
rm -f actions-runner-linux-x64-*.tar.gz && \
|
|
26
|
+
yum install -y openssl-libs krb5-libs zlib libicu60
|
|
27
|
+
|
|
28
|
+
# prepare for execution
|
|
29
|
+
WORKDIR ${LAMBDA_TASK_ROOT}
|
|
30
|
+
COPY runner.js runner.sh ${LAMBDA_TASK_ROOT}/
|
|
31
|
+
CMD ["runner.handler"]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const exec = require('child_process').exec;
|
|
2
|
+
|
|
3
|
+
exports.handler = async (event, context) => {
|
|
4
|
+
await new Promise((resolve, reject) => {
|
|
5
|
+
const shellScript = exec('sh runner.sh', {
|
|
6
|
+
env: {
|
|
7
|
+
OWNER: event.owner,
|
|
8
|
+
REPO: event.repo,
|
|
9
|
+
GITHUB_DOMAIN: event.githubDomain,
|
|
10
|
+
RUNNER_TOKEN: event.token,
|
|
11
|
+
RUNNER_NAME: event.runnerName,
|
|
12
|
+
RUNNER_LABEL: event.label,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
shellScript.stdout.on('data', (data) => {
|
|
16
|
+
console.log(data);
|
|
17
|
+
});
|
|
18
|
+
shellScript.stderr.on('data', (data) => {
|
|
19
|
+
console.error(data);
|
|
20
|
+
});
|
|
21
|
+
shellScript.on('exit', (code) => {
|
|
22
|
+
if (code) {
|
|
23
|
+
reject(new Error(`Runner failed with exit code ${code}`));
|
|
24
|
+
} else {
|
|
25
|
+
resolve();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e -u -o pipefail
|
|
4
|
+
|
|
5
|
+
cp -r /runner /tmp/
|
|
6
|
+
cd /tmp/runner
|
|
7
|
+
|
|
8
|
+
export PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin
|
|
9
|
+
./config.sh --unattended --url "https://${GITHUB_DOMAIN}/${OWNER}/${REPO}" --token "${RUNNER_TOKEN}" --ephemeral --work _work --labels "${RUNNER_LABEL}" --name "${RUNNER_NAME}" --disableupdate
|
|
10
|
+
echo Config done
|
|
11
|
+
./run.sh
|
|
12
|
+
echo Run done
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import { aws_ec2 as ec2, aws_ecs as ecs, aws_iam as iam, aws_stepfunctions as stepfunctions } from 'aws-cdk-lib';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
-
import { IRunnerProvider, RunnerProviderProps, RunnerRuntimeParameters } from './common';
|
|
3
|
+
import { IImageBuilder, IRunnerProvider, RunnerProviderProps, RunnerRuntimeParameters } from './common';
|
|
4
4
|
/**
|
|
5
5
|
* Properties for FargateRunner.
|
|
6
6
|
*/
|
|
7
7
|
export interface FargateRunnerProps extends RunnerProviderProps {
|
|
8
|
+
/**
|
|
9
|
+
* Provider running an image to run inside CodeBuild with GitHub runner pre-configured. A user named `runner` is expected to exist.
|
|
10
|
+
*
|
|
11
|
+
* The entry point should start GitHub runner. For example:
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* #!/bin/bash
|
|
15
|
+
* set -e -u -o pipefail
|
|
16
|
+
*
|
|
17
|
+
* /home/runner/config.sh --unattended --url "https://${GITHUB_DOMAIN}/${OWNER}/${REPO}" --token "${RUNNER_TOKEN}" --ephemeral --work _work --labels "${RUNNER_LABEL}" --disableupdate --name "${RUNNER_NAME}"
|
|
18
|
+
* /home/runner/run.sh
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @default image builder with `FargateRunner.LINUX_X64_DOCKERFILE_PATH` as Dockerfile
|
|
22
|
+
*/
|
|
23
|
+
readonly imageBuilder?: IImageBuilder;
|
|
8
24
|
/**
|
|
9
25
|
* GitHub Actions label used for this provider.
|
|
10
26
|
*
|
|
@@ -80,6 +96,15 @@ export interface FargateRunnerProps extends RunnerProviderProps {
|
|
|
80
96
|
* @default 20
|
|
81
97
|
*/
|
|
82
98
|
readonly ephemeralStorageGiB?: number;
|
|
99
|
+
/**
|
|
100
|
+
* Use Fargate spot capacity provider to save money.
|
|
101
|
+
*
|
|
102
|
+
* * Runners may fail to start due to missing capacity.
|
|
103
|
+
* * Runners might be stopped prematurely with spot pricing.
|
|
104
|
+
*
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
107
|
+
readonly spot?: boolean;
|
|
83
108
|
}
|
|
84
109
|
/**
|
|
85
110
|
* GitHub Actions runner provider using Fargate to execute the actions.
|
|
@@ -89,6 +114,22 @@ export interface FargateRunnerProps extends RunnerProviderProps {
|
|
|
89
114
|
* This construct is not meant to be used by itself. It should be passed in the providers property for GitHubRunners.
|
|
90
115
|
*/
|
|
91
116
|
export declare class FargateRunner extends Construct implements IRunnerProvider {
|
|
117
|
+
/**
|
|
118
|
+
* Path to Dockerfile for Linux x64 with all the requirement for Fargate runner. Use this Dockerfile unless you need to customize it further than allowed by hooks.
|
|
119
|
+
*
|
|
120
|
+
* Available build arguments that can be set in the image builder:
|
|
121
|
+
* * `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.
|
|
122
|
+
* * `EXTRA_PACKAGES` can be used to install additional packages.
|
|
123
|
+
*/
|
|
124
|
+
static readonly LINUX_X64_DOCKERFILE_PATH: string;
|
|
125
|
+
/**
|
|
126
|
+
* Path to Dockerfile for Linux ARM64 with all the requirement for Fargate runner. Use this Dockerfile unless you need to customize it further than allowed by hooks.
|
|
127
|
+
*
|
|
128
|
+
* Available build arguments that can be set in the image builder:
|
|
129
|
+
* * `BASE_IMAGE` sets the `FROM` line. This should be an Ubuntu compatible image.
|
|
130
|
+
* * `EXTRA_PACKAGES` can be used to install additional packages.
|
|
131
|
+
*/
|
|
132
|
+
static readonly LINUX_ARM64_DOCKERFILE_PATH: string;
|
|
92
133
|
/**
|
|
93
134
|
* Cluster hosting the task hosting the runner.
|
|
94
135
|
*/
|
|
@@ -125,6 +166,10 @@ export declare class FargateRunner extends Construct implements IRunnerProvider
|
|
|
125
166
|
* The network connections associated with this resource.
|
|
126
167
|
*/
|
|
127
168
|
readonly connections: ec2.Connections;
|
|
169
|
+
/**
|
|
170
|
+
* Use spot pricing for Fargate tasks.
|
|
171
|
+
*/
|
|
172
|
+
readonly spot: boolean;
|
|
128
173
|
constructor(scope: Construct, id: string, props: FargateRunnerProps);
|
|
129
174
|
/**
|
|
130
175
|
* Generate step function task(s) to start a new runner.
|
|
@@ -135,4 +180,3 @@ export declare class FargateRunner extends Construct implements IRunnerProvider
|
|
|
135
180
|
*/
|
|
136
181
|
getStepFunctionTask(parameters: RunnerRuntimeParameters): stepfunctions.IChainable;
|
|
137
182
|
}
|
|
138
|
-
//# sourceMappingURL=fargate.d.ts.map
|