diff --git a/.github/actions/provision-cluster/create.js b/.github/actions/provision-cluster/create.js index 469b8c84..77f778f3 100644 --- a/.github/actions/provision-cluster/create.js +++ b/.github/actions/provision-cluster/create.js @@ -1,7 +1,6 @@ 'use strict'; const core = require('@actions/core') -const github = require('@actions/github') const registry = require('./lib/registry.js') const utils = require('./lib/utils.js') diff --git a/.github/actions/provision-cluster/delete.js b/.github/actions/provision-cluster/delete.js index 9d05145c..ede2c77e 100644 --- a/.github/actions/provision-cluster/delete.js +++ b/.github/actions/provision-cluster/delete.js @@ -1,7 +1,6 @@ 'use strict'; const core = require('@actions/core') -const github = require('@actions/github') const registry = require('./lib/registry.js') const slack = require('./lib/slack.js') @@ -24,14 +23,14 @@ async function do_delete() { return Promise.all(promises) } -async function expire(provider, distribution) { +async function expire(provider) { let orphaned = await provider.expireClusters() if (orphaned.length == 0) { return } - core.notice(`Orhpaned Clusters: ${orphaned.join(', ')}`) + core.notice(`Orphaned Clusters: ${orphaned.join(', ')}`) slack.notify(`Orphaned clusters:\n\n - ${orphaned.join("\n - ")}`) } diff --git a/.github/actions/provision-cluster/lib/gke.js b/.github/actions/provision-cluster/lib/gke.js index f0d986a5..ba59e686 100644 --- a/.github/actions/provision-cluster/lib/gke.js +++ b/.github/actions/provision-cluster/lib/gke.js @@ -2,7 +2,6 @@ const core = require('@actions/core') const container = require('@google-cloud/container') -const crypto = require('crypto') const utils = require('./utils.js') const STATUS_ENUM = container.protos.google.container.v1.Operation.Status diff --git a/.github/actions/provision-cluster/lib/gke.test.js b/.github/actions/provision-cluster/lib/gke.test.js index a84f54c0..806472e2 100644 --- a/.github/actions/provision-cluster/lib/gke.test.js +++ b/.github/actions/provision-cluster/lib/gke.test.js @@ -1,6 +1,5 @@ 'use strict'; -const gke = require('./gke.js') const common = require('./common_test.js') const mock = require('./mock.js') diff --git a/.github/actions/provision-cluster/lib/kubeception.test.js b/.github/actions/provision-cluster/lib/kubeception.test.js index 947ac2d6..c582adb2 100644 --- a/.github/actions/provision-cluster/lib/kubeception.test.js +++ b/.github/actions/provision-cluster/lib/kubeception.test.js @@ -56,7 +56,7 @@ test('kubeception profile', async ()=>{ } } } - async del(url) { + async del() { return { message: { statusCode: 200 diff --git a/.github/actions/provision-cluster/lib/mock.js b/.github/actions/provision-cluster/lib/mock.js index bc40d32c..28b0f61f 100644 --- a/.github/actions/provision-cluster/lib/mock.js +++ b/.github/actions/provision-cluster/lib/mock.js @@ -38,14 +38,13 @@ class MockGKE { return [cluster] } - async getOperation(op) { + async getOperation() { return [new MockOp()] } } class MockAuth { - getAccessToken() { return MOCK.ACCESS_TOKEN } diff --git a/.github/actions/provision-cluster/lib/utils.js b/.github/actions/provision-cluster/lib/utils.js index 46e53601..e64e44f5 100644 --- a/.github/actions/provision-cluster/lib/utils.js +++ b/.github/actions/provision-cluster/lib/utils.js @@ -65,7 +65,13 @@ class Transient extends Error {} async function fibonacciRetry(action, timeout=600000, minDelay=1000, maxDelay=30000) { let start = Date.now() let nextDelay = fibonacciDelaySequence(minDelay, maxDelay) - for (let count = 1; true; count++) { + + let count = 0; + let timeoutReached = false; + + do { + count++; + try { return await action() } catch (e) { @@ -73,7 +79,6 @@ async function fibonacciRetry(action, timeout=600000, minDelay=1000, maxDelay=30 throw e } let delay = nextDelay() - let now = Date.now() let elapsed = Date.now() - start let remaining = timeout - elapsed if (remaining > 0) { @@ -81,10 +86,14 @@ async function fibonacciRetry(action, timeout=600000, minDelay=1000, maxDelay=30 core.info(`Error (${e.message}) retrying after ${t/1000}s ...`) await sleep(t) } else { + timeoutReached = true; + } + + if (timeoutReached) { throw new Error(`Error (${e.message}) failing after ${count} attempts over ${elapsed/1000}s.`) } } - } + } while (!timeoutReached); } module.exports = { getUniqueClusterName, writeFile, sleep, fibonacciDelaySequence, uid, Retry, Transient, fibonacciRetry } diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 084a327d..ef1bc2cc 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -26,6 +26,8 @@ jobs: node-version: ${{ matrix.node-version }} - working-directory: .github/actions/provision-cluster run: npm ci + - working-directory: .github/actions/provision-cluster + run: npm run lint - working-directory: .github/actions/provision-cluster run: npm run build --if-present - working-directory: .github/actions/provision-cluster