Skip to content

Commit d22b3fb

Browse files
committed
Merge branch 'develop' of https://github.com/shashidhar087/terraform-aws-github-runner into fix/S3-tf-resource
2 parents 33d2707 + 3658d6a commit d22b3fb

File tree

12 files changed

+1035
-880
lines changed

12 files changed

+1035
-880
lines changed

.github/workflows/auto-approve-dependabot.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ jobs:
1414
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: hmarr/auto-approve-action@v2.1.0
17+
- uses: hmarr/auto-approve-action@v2.2.1
1818
with:
1919
github-token: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/release.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Build dist
2828
working-directory: ${{ matrix.lambda }}
2929
run: yarn install && yarn run test && yarn dist
30-
- uses: actions/upload-artifact@v2
30+
- uses: actions/upload-artifact@v3
3131
with:
3232
name: ${{ steps.lambda.outputs.name }}
3333
path: ${{ matrix.lambda }}/${{ steps.lambda.outputs.name }}.zip
@@ -43,15 +43,15 @@ jobs:
4343
with:
4444
fetch-depth: 0
4545
persist-credentials: false
46-
- uses: actions/download-artifact@v2
46+
- uses: actions/download-artifact@v3
4747
with:
4848
name: webhook
4949
path: artifacts
50-
- uses: actions/download-artifact@v2
50+
- uses: actions/download-artifact@v3
5151
with:
5252
name: runners
5353
path: artifacts
54-
- uses: actions/download-artifact@v2
54+
- uses: actions/download-artifact@v3
5555
with:
5656
name: runner-binaries-syncer
5757
path: artifacts

.release/yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -2252,9 +2252,9 @@ [email protected]:
22522252
kind-of "^6.0.3"
22532253

22542254
minimist@^1.2.0, minimist@^1.2.5:
2255-
version "1.2.5"
2256-
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
2257-
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
2255+
version "1.2.6"
2256+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
2257+
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
22582258

22592259
minipass-collect@^1.0.2:
22602260
version "1.0.2"

modules/runner-binaries-syncer/lambdas/runner-binaries-syncer/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@
2323
"@typescript-eslint/eslint-plugin": "^4.33.0",
2424
"@typescript-eslint/parser": "^4.33.0",
2525
"@vercel/ncc": "^0.33.3",
26-
"aws-sdk": "^2.1097.0",
26+
"aws-sdk": "^2.1112.0",
2727
"eslint": "^7.32.0",
2828
"eslint-plugin-prettier": "4.0.0",
2929
"jest": "^27.5.1",
3030
"jest-mock": "^27.5.1",
31-
"prettier": "2.6.1",
32-
"ts-jest": "^27.1.3",
31+
"prettier": "2.6.2",
32+
"ts-jest": "^27.1.4",
3333
"ts-node-dev": "^1.1.6",
34-
"typescript": "^4.6.2"
34+
"typescript": "^4.6.3"
3535
},
3636
"dependencies": {
3737
"axios": "^0.26.1",

modules/runner-binaries-syncer/lambdas/runner-binaries-syncer/yarn.lock

+21-38
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@
586586
source-map "^0.6.1"
587587
write-file-atomic "^3.0.0"
588588

589-
"@jest/types@^27.4.2", "@jest/types@^27.5.1":
589+
"@jest/types@^27.5.1":
590590
version "27.5.1"
591591
resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80"
592592
integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==
@@ -1086,10 +1086,10 @@ asynckit@^0.4.0:
10861086
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
10871087
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
10881088

1089-
aws-sdk@^2.1097.0:
1090-
version "2.1097.0"
1091-
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1097.0.tgz#1e53ee27d8ab7523760d023b934b24a9512bd719"
1092-
integrity sha512-fChMDiSfWcW0EUWmiqlyc+VAIXKH0w7BBruL3cVWSwO+5oA5A9juGF4NCBV2/KAHzaKaG0hXKPE49Wh6Lq74ag==
1089+
aws-sdk@^2.1112.0:
1090+
version "2.1112.0"
1091+
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1112.0.tgz#7e6f60df562ebd909a9435b01673ed7685e10ffd"
1092+
integrity sha512-8FKr3zwD2bHZQLmxJ7d1VwvDkW9kKx4YPdNXawV+CqNUzQC/9ZmSmHyx8mZCv6J722tqxIZh5c567499QawuZw==
10931093
dependencies:
10941094
buffer "4.9.2"
10951095
events "1.1.1"
@@ -1907,11 +1907,6 @@ globby@^11.0.3:
19071907
merge2 "^1.3.0"
19081908
slash "^3.0.0"
19091909

1910-
graceful-fs@^4.2.4:
1911-
version "4.2.8"
1912-
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
1913-
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
1914-
19151910
graceful-fs@^4.2.9:
19161911
version "4.2.9"
19171912
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
@@ -2502,19 +2497,7 @@ jest-snapshot@^27.5.1:
25022497
pretty-format "^27.5.1"
25032498
semver "^7.3.2"
25042499

2505-
jest-util@^27.0.0:
2506-
version "27.4.2"
2507-
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621"
2508-
integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==
2509-
dependencies:
2510-
"@jest/types" "^27.4.2"
2511-
"@types/node" "*"
2512-
chalk "^4.0.0"
2513-
ci-info "^3.2.0"
2514-
graceful-fs "^4.2.4"
2515-
picomatch "^2.2.3"
2516-
2517-
jest-util@^27.5.1:
2500+
jest-util@^27.0.0, jest-util@^27.5.1:
25182501
version "27.5.1"
25192502
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9"
25202503
integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==
@@ -2779,9 +2762,9 @@ minimatch@^3.0.4:
27792762
brace-expansion "^1.1.7"
27802763

27812764
minimist@^1.2.5:
2782-
version "1.2.5"
2783-
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
2784-
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
2765+
version "1.2.6"
2766+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
2767+
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
27852768

27862769
mkdirp@^1.0.4:
27872770
version "1.0.4"
@@ -2975,10 +2958,10 @@ prettier-linter-helpers@^1.0.0:
29752958
dependencies:
29762959
fast-diff "^1.1.2"
29772960

2978-
2979-
version "2.6.1"
2980-
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17"
2981-
integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==
2961+
2962+
version "2.6.2"
2963+
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
2964+
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
29822965

29832966
pretty-format@^27.0.0, pretty-format@^27.5.1:
29842967
version "27.5.1"
@@ -3384,10 +3367,10 @@ tree-kill@^1.2.2:
33843367
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
33853368
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
33863369

3387-
ts-jest@^27.1.3:
3388-
version "27.1.3"
3389-
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957"
3390-
integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==
3370+
ts-jest@^27.1.4:
3371+
version "27.1.4"
3372+
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.4.tgz#84d42cf0f4e7157a52e7c64b1492c46330943e00"
3373+
integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==
33913374
dependencies:
33923375
bs-logger "0.x"
33933376
fast-json-stable-stringify "2.x"
@@ -3491,10 +3474,10 @@ typedarray-to-buffer@^3.1.5:
34913474
dependencies:
34923475
is-typedarray "^1.0.0"
34933476

3494-
typescript@^4.6.2:
3495-
version "4.6.2"
3496-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
3497-
integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
3477+
typescript@^4.6.3:
3478+
version "4.6.3"
3479+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c"
3480+
integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==
34983481

34993482
universal-user-agent@^6.0.0:
35003483
version "6.0.0"

modules/runners/lambdas/runners/package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,25 @@
2727
"eslint-plugin-prettier": "4.0.0",
2828
"jest": "27.5.1",
2929
"jest-mock": "^27.5.1",
30-
"jest-mock-extended": "^2.0.1",
30+
"jest-mock-extended": "^2.0.5",
3131
"moment-timezone": "^0.5.34",
3232
"nock": "^13.2.4",
33-
"prettier": "2.6.1",
34-
"ts-jest": "^27.1.3",
33+
"prettier": "2.6.2",
34+
"ts-jest": "^27.1.4",
3535
"ts-node": "^10.7.0",
3636
"ts-node-dev": "^1.1.6"
3737
},
3838
"dependencies": {
39-
"@aws-sdk/client-ssm": "^3.54.1",
39+
"@aws-sdk/client-ssm": "^3.67.0",
4040
"@octokit/auth-app": "3.6.1",
4141
"@octokit/rest": "^18.12.0",
4242
"@octokit/types": "^6.34.0",
4343
"@types/aws-lambda": "^8.10.93",
4444
"@types/express": "^4.17.11",
4545
"@types/node": "^17.0.23",
46-
"aws-sdk": "^2.1100.0",
47-
"cron-parser": "^4.2.1",
46+
"aws-sdk": "^2.1112.0",
47+
"cron-parser": "^4.3.0",
4848
"tslog": "^3.3.3",
49-
"typescript": "^4.6.2"
49+
"typescript": "^4.6.3"
5050
}
5151
}

modules/runners/lambdas/runners/src/scale-runners/scale-down.test.ts

+50-17
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const mockOctokit = {
1818
listSelfHostedRunnersForOrg: jest.fn(),
1919
deleteSelfHostedRunnerFromOrg: jest.fn(),
2020
deleteSelfHostedRunnerFromRepo: jest.fn(),
21+
getSelfHostedRunnerForOrg: jest.fn(),
22+
getSelfHostedRunnerForRepo: jest.fn(),
2123
},
2224
paginate: jest.fn(),
2325
};
@@ -144,10 +146,14 @@ const DEFAULT_RUNNERS_ORIGINAL = [
144146
repo: `${TEST_DATA.repositoryOwner}/${TEST_DATA.repositoryName}`,
145147
},
146148
{
147-
instanceId: 'i-busy-112',
148-
launchTime: moment(new Date())
149-
.subtract(minimumRunningTimeInMinutes + 27, 'minutes')
150-
.toDate(),
149+
instanceId: 'i-running-112',
150+
launchTime: moment(new Date()).subtract(25, 'minutes').toDate(),
151+
type: 'Repo',
152+
owner: `doe/another-repo`,
153+
},
154+
{
155+
instanceId: 'i-running-113',
156+
launchTime: moment(new Date()).subtract(25, 'minutes').toDate(),
151157
type: 'Org',
152158
owner: TEST_DATA.repositoryOwner,
153159
},
@@ -157,37 +163,42 @@ const DEFAULT_REGISTERED_RUNNERS = [
157163
{
158164
id: 101,
159165
name: 'i-idle-101',
160-
busy: false,
161166
},
162167
{
163168
id: 102,
164169
name: 'i-idle-102',
165-
busy: false,
166170
},
167171
{
168172
id: 103,
169173
name: 'i-oldest-idle-103',
170-
busy: false,
171174
},
172175
{
173176
id: 104,
174177
name: 'i-oldest-idle-104',
175-
busy: false,
176178
},
177179
{
178180
id: 105,
179181
name: 'i-running-105',
180-
busy: false,
181182
},
182183
{
183184
id: 106,
184185
name: 'i-running-106',
185-
busy: false,
186186
},
187187
{
188-
id: 112,
189-
name: 'i-busy-112',
190-
busy: true,
188+
id: 1121,
189+
name: 'i-running-112-1',
190+
},
191+
{
192+
id: 1122,
193+
name: 'i-running-112-2',
194+
},
195+
{
196+
id: 1131,
197+
name: 'i-running-113-1',
198+
},
199+
{
200+
id: 1132,
201+
name: 'i-running-113-2',
191202
},
192203
];
193204

@@ -235,6 +246,29 @@ describe('scaleDown', () => {
235246
}
236247
});
237248

249+
mockOctokit.actions.getSelfHostedRunnerForRepo.mockImplementation((repo) => {
250+
if (repo.runner_id === 1121) {
251+
return {
252+
data: { busy: true },
253+
};
254+
} else {
255+
return {
256+
data: { busy: false },
257+
};
258+
}
259+
});
260+
mockOctokit.actions.getSelfHostedRunnerForOrg.mockImplementation((repo) => {
261+
if (repo.runner_id === 1131) {
262+
return {
263+
data: { busy: true },
264+
};
265+
} else {
266+
return {
267+
data: { busy: false },
268+
};
269+
}
270+
});
271+
238272
const mockTerminateRunners = mocked(terminateRunner);
239273
mockTerminateRunners.mockImplementation(async () => {
240274
return;
@@ -279,8 +313,7 @@ describe('scaleDown', () => {
279313
);
280314

281315
RUNNERS_ALL_REMOVED = DEFAULT_RUNNERS_ORG.filter(
282-
(r) =>
283-
!r.instanceId.includes('running') && !r.instanceId.includes('registered') && !r.instanceId.includes('busy'),
316+
(r) => !r.instanceId.includes('running') && !r.instanceId.includes('registered'),
284317
);
285318
DEFAULT_RUNNERS_ORPHANED = DEFAULT_RUNNERS_ORIGINAL.filter(
286319
(r) => r.instanceId.includes('orphan') && !r.instanceId.includes('not-registered'),
@@ -349,7 +382,7 @@ describe('scaleDown', () => {
349382
beforeEach(() => {
350383
process.env.SCALE_DOWN_CONFIG = JSON.stringify([
351384
{
352-
idleCount: 2,
385+
idleCount: 3,
353386
cron: '* * * * * *',
354387
timeZone: 'Europe/Amsterdam',
355388
},
@@ -479,7 +512,7 @@ describe('scaleDown', () => {
479512
beforeEach(() => {
480513
process.env.SCALE_DOWN_CONFIG = JSON.stringify([
481514
{
482-
idleCount: 2,
515+
idleCount: 3,
483516
cron: '* * * * * *',
484517
timeZone: 'Europe/Amsterdam',
485518
},

0 commit comments

Comments
 (0)