diff --git a/.github/workflows/dev-containers.yml b/.github/workflows/dev-containers.yml index c9b490854..930d77d31 100644 --- a/.github/workflows/dev-containers.yml +++ b/.github/workflows/dev-containers.yml @@ -16,6 +16,7 @@ jobs: cli: name: CLI runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v5 @@ -44,6 +45,7 @@ jobs: tests-matrix: name: Tests Matrix runs-on: ubuntu-latest + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -111,6 +113,7 @@ jobs: # TODO: This should be expanded to run on different platforms # Most notably to test platform-specific credential helper behavior runs-on: ubuntu-latest + timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@v6 @@ -145,6 +148,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} + timeout-minutes: 10 steps: - uses: actions/checkout@v6 - name: Run install.sh tests diff --git a/.github/workflows/test-docker-v20.yml b/.github/workflows/test-docker-v20.yml index 0b35c363b..69f8d3569 100644 --- a/.github/workflows/test-docker-v20.yml +++ b/.github/workflows/test-docker-v20.yml @@ -13,6 +13,7 @@ jobs: test-docker-v20: name: Docker v20.10 Compatibility runs-on: ubuntu-22.04 + timeout-minutes: 20 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/test-docker-v29.yml b/.github/workflows/test-docker-v29.yml index e3db37304..de475f246 100644 --- a/.github/workflows/test-docker-v29.yml +++ b/.github/workflows/test-docker-v29.yml @@ -13,6 +13,7 @@ jobs: test-docker-v29: name: Docker v29.0.0 Compatibility runs-on: ubuntu-latest + timeout-minutes: 20 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 3f4d323f2..5ac9743d1 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -19,6 +19,7 @@ jobs: tests-matrix: name: Tests Matrix (Windows) runs-on: windows-latest + timeout-minutes: 15 strategy: fail-fast: false matrix: diff --git a/.mocharc.yml b/.mocharc.yml new file mode 100644 index 000000000..42bdad050 --- /dev/null +++ b/.mocharc.yml @@ -0,0 +1 @@ +timeout: 360000 # 6 minutes global safety net; individual suites override via this.timeout() diff --git a/.vscode/settings.json b/.vscode/settings.json index a5ac98e49..5983a4b7b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,5 +24,15 @@ ], "editor.formatOnSave": true, "editor.formatOnSaveMode": "modifications", - "editor.insertSpaces": false + "editor.insertSpaces": false, + "[json]": { + "editor.insertSpaces": false, + "editor.tabSize": 4, + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[jsonc]": { + "editor.insertSpaces": false, + "editor.tabSize": 4, + "editor.defaultFormatter": "vscode.json-language-features" + } } \ No newline at end of file diff --git a/package.json b/package.json index 6ae8776a2..e1a7bcc11 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "clean-dist": "rimraf dist", "clean-built": "rimraf built", "test": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit src/test/*.test.ts", - "test-matrix": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit", + "test-matrix": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit --retries 1", "test-container-features": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit src/test/container-features/*.test.ts", "test-container-features-cli": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit src/test/container-features/featuresCLICommands.test.ts", "test-container-templates": "env TS_NODE_PROJECT=src/test/tsconfig.json mocha -r ts-node/register --exit src/test/container-templates/*.test.ts"