Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{
"name": "Alpine",
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.21",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:3": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-extra/features/act:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"eamodio.gitlens",
"github.vscode-github-actions",
"github.copilot",
"github.copilot-chat",
"ms-vscode.makefile-tools",
"esbenp.prettier-vscode"
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh"
}
}
}
"name": "Alpine",
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.21",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:3": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-extra/features/act:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"eamodio.gitlens",
"github.vscode-github-actions",
"github.copilot",
"github.copilot-chat",
"ms-vscode.makefile-tools",
"esbenp.prettier-vscode"
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh"
}
}
}
}
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ updates:
interval: weekly
day: friday
time: "04:00"
cooldown:
default-days: 7
groups:
docker-dependencies:
patterns:
Expand All @@ -21,6 +23,8 @@ updates:
interval: weekly
day: friday
time: "04:00"
cooldown:
default-days: 7
groups:
github-actions-dependencies:
patterns:
Expand All @@ -34,6 +38,8 @@ updates:
interval: weekly
day: friday
time: "04:00"
cooldown:
default-days: 7
groups:
npm-dependencies:
patterns:
Expand All @@ -46,3 +52,5 @@ updates:
interval: weekly
day: friday
time: "04:00"
cooldown:
default-days: 7
5 changes: 5 additions & 0 deletions .github/linters/.codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[codespell]
skip = *.svg
ignore-words-list =
# commitish is the input name used by release-drafter
commitish,
4 changes: 2 additions & 2 deletions .github/linters/.jscpd.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"threshold": 5,
"ignore": ["**/tests/**"]
"threshold": 5,
"ignore": ["**/tests/**"]
}
4 changes: 2 additions & 2 deletions .github/workflows/__greetings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ name: Greetings
on:
issues:
types: [opened]
pull_request_target:
pull_request:
branches: [main]

permissions: {}

jobs:
greetings:
uses: hoverkraft-tech/ci-github-common/.github/workflows/greetings.yml@b553a696531fbd36743ccbb0c76c717971b8acdb # 0.35.4
uses: hoverkraft-tech/ci-github-common/.github/workflows/greetings.yml@6718ae98e8b6e009f8f2790af074daa1a06946c2 # 0.36.2
permissions:
contents: read
issues: write
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/__main-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ jobs:
pull-requests: write
security-events: write
statuses: write
secrets: inherit

release:
needs: ci
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/__need-fix-to-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ permissions: {}

jobs:
main:
uses: hoverkraft-tech/ci-github-common/.github/workflows/need-fix-to-issue.yml@b553a696531fbd36743ccbb0c76c717971b8acdb # 0.35.4
uses: hoverkraft-tech/ci-github-common/.github/workflows/need-fix-to-issue.yml@6718ae98e8b6e009f8f2790af074daa1a06946c2 # 0.36.2
permissions:
contents: read
issues: write
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/__pull-request-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,3 @@ jobs:
pull-requests: write
security-events: write
statuses: write
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/__semantic-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: "Pull Request - Semantic Lint"

on:
pull_request_target:
pull_request:
types:
- opened
- edited
Expand All @@ -12,7 +12,7 @@ permissions: {}

jobs:
main:
uses: hoverkraft-tech/ci-github-common/.github/workflows/semantic-pull-request.yml@b553a696531fbd36743ccbb0c76c717971b8acdb # 0.35.4
uses: hoverkraft-tech/ci-github-common/.github/workflows/semantic-pull-request.yml@6718ae98e8b6e009f8f2790af074daa1a06946c2 # 0.36.2
permissions:
contents: write
pull-requests: write
4 changes: 1 addition & 3 deletions .github/workflows/__shared-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ permissions: {}

jobs:
linter:
uses: hoverkraft-tech/ci-github-common/.github/workflows/linter.yml@b553a696531fbd36743ccbb0c76c717971b8acdb # 0.35.4
uses: hoverkraft-tech/ci-github-common/.github/workflows/linter.yml@6718ae98e8b6e009f8f2790af074daa1a06946c2 # 0.36.2
permissions:
actions: read
contents: read
Expand Down Expand Up @@ -36,7 +36,6 @@ jobs:
test-action-deploy-jekyll-jampack:
needs: linter
uses: ./.github/workflows/__test-action-deploy-jekyll-jampack.yml
secrets: inherit
permissions:
contents: read
id-token: write
Expand All @@ -51,7 +50,6 @@ jobs:
contents: read
deployments: write
pull-requests: read
secrets: inherit

test-action-release-get-configuration:
needs: linter
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/__stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ permissions: {}

jobs:
main:
uses: hoverkraft-tech/ci-github-common/.github/workflows/stale.yml@b553a696531fbd36743ccbb0c76c717971b8acdb # 0.35.4
uses: hoverkraft-tech/ci-github-common/.github/workflows/stale.yml@6718ae98e8b6e009f8f2790af074daa1a06946c2 # 0.36.2
permissions:
issues: write
pull-requests: write
2 changes: 1 addition & 1 deletion .github/workflows/__test-action-check-url-lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
contents: read
steps:
- name: Arrange - Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

Expand Down
37 changes: 24 additions & 13 deletions .github/workflows/__test-action-check-url-ping.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- 1080:8080
steps:
- name: Arrange - Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

Expand Down Expand Up @@ -109,12 +109,14 @@ jobs:
STEP_ID: test-success
EXPECTED_STATUS: "200"
TEST_NAME: "Test 1 - Successful URL check"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
ATTEMPT_COUNT: ${{ steps[env.STEP_ID].outputs.attempt-count }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS}, got: ${statusCode}`);
const attemptCountRaw = ${{ toJSON(steps[env.STEP_ID].outputs.attempt-count) }};
const attemptCountRaw = process.env.ATTEMPT_COUNT;
if (attemptCountRaw === null) {
throw new Error('Attempt count output missing');
}
Expand All @@ -138,10 +140,11 @@ jobs:
STEP_ID: test-multiple-status
EXPECTED_STATUS: "404"
TEST_NAME: "Test 2 - Multiple expected status codes"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS}, got: ${statusCode}`);
console.log(`✅ ${process.env.TEST_NAME} passed`);

Expand All @@ -161,9 +164,10 @@ jobs:
env:
STEP_ID: test-timeout
TEST_NAME: "Test 3 - Timeout handling"
OUTCOME: ${{ steps[env.STEP_ID].outcome }}
with:
script: |
const outcome = `${{ steps[env.STEP_ID].outcome }}`;
const outcome = process.env.OUTCOME;
if (outcome !== 'failure') {
throw new Error(`Expected ${process.env.TEST_NAME} to fail, but outcome was: ${outcome}`);
}
Expand Down Expand Up @@ -268,13 +272,14 @@ jobs:
STEP_ID: test-retry
EXPECTED_STATUS: "200"
TEST_NAME: "Test 4 - Retry with exponential backoff"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS} after retry, got: ${statusCode}`);
console.log(`✅ ${process.env.TEST_NAME} passed`);
const attemptCountRaw = ${{ toJSON(steps[env.STEP_ID].outputs.attempt-count) }};
const attemptCountRaw = process.env.ATTEMPT_COUNT;
if (attemptCountRaw === null) {
throw new Error('Attempt count output missing');
}
Expand All @@ -298,10 +303,11 @@ jobs:
STEP_ID: test-redirect-disabled
EXPECTED_STATUS: "301"
TEST_NAME: "Test 5 - Redirect handling (follow disabled)"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS}, got: ${statusCode}`);
console.log(`✅ ${process.env.TEST_NAME} passed`);

Expand All @@ -322,10 +328,11 @@ jobs:
STEP_ID: test-redirect-enabled
EXPECTED_STATUS: "200"
TEST_NAME: "Test 6 - Redirect handling (follow enabled)"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS}, got: ${statusCode}`);
console.log(`✅ ${process.env.TEST_NAME} passed`);

Expand All @@ -345,9 +352,10 @@ jobs:
env:
STEP_ID: test-invalid-url
TEST_NAME: "Test 7 - Invalid URL handling"
OUTCOME: ${{ steps[env.STEP_ID].outcome }}
with:
script: |
const outcome = `${{ steps[env.STEP_ID].outcome }}`;
const outcome = process.env.OUTCOME;
if (outcome !== 'failure') {
throw new Error(`Expected ${process.env.TEST_NAME} to fail, but outcome was: ${outcome}`);
}
Expand All @@ -369,10 +377,11 @@ jobs:
STEP_ID: test-real-world
EXPECTED_STATUS: "200"
TEST_NAME: "Test 8 - Real-world endpoint check"
STATUS_CODE: ${{ steps[env.STEP_ID].outputs.status-code }}
with:
script: |
const assert = require("assert");
const statusCode = ${{ toJSON(steps[env.STEP_ID].outputs.status-code) }};
const statusCode = process.env.STATUS_CODE;
assert.equal(statusCode, process.env.EXPECTED_STATUS, `Expected ${process.env.EXPECTED_STATUS}, got: ${statusCode}`);
console.log(`✅ ${process.env.TEST_NAME} passed`);

Expand Down Expand Up @@ -436,13 +445,15 @@ jobs:
STEP_ID: test-max-retries
TEST_NAME: "Test 9 - Max retries exhausted"
EXPECTED_MIN_ATTEMPTS: "2"
OUTCOME: ${{ steps[env.STEP_ID].outcome }}
ATTEMPT_COUNT: ${{ steps[env.STEP_ID].outputs.attempt-count }}
with:
script: |
const outcome = `${{ steps[env.STEP_ID].outcome }}`;
const outcome = process.env.OUTCOME;
if (outcome !== 'failure') {
throw new Error(`Expected ${process.env.TEST_NAME} to fail, but outcome was: ${outcome}`);
}
const attemptCountRaw = ${{ toJSON(steps[env.STEP_ID].outputs.attempt-count) }};
const attemptCountRaw = process.env.ATTEMPT_COUNT;
if (attemptCountRaw === null) {
throw new Error('Attempt count output missing');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
TEST_MANIFEST_FILE: tests/argocd-app-of-apps/ci/manifests/ci-test/${{ matrix.test-dir }}/test-app.yml
TEST_EXPECTED_MANIFEST_FILE: tests/argocd-app-of-apps/ci/manifests/ci-test/${{ matrix.test-dir }}/expected.yml
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/__test-action-deploy-jekyll-jampack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ permissions: {}
jobs:
continuous-integration:
name: Continuous integration for "deploy/jekyll" action
uses: hoverkraft-tech/ci-github-nodejs/.github/workflows/continuous-integration.yml@6b74a8f070140f5c120f78026d58e4c00d1b1e37 # 0.24.2
uses: hoverkraft-tech/ci-github-nodejs/.github/workflows/continuous-integration.yml@df348077afa4e79725151d50606e9dc63f86dcb6 # 0.24.4
permissions:
contents: read
id-token: write
Expand All @@ -30,7 +30,7 @@ jobs:
build-path: ${{ steps.deploy-jekyll.outputs.build-path }}
steps:
- name: Arrange - Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

Expand Down Expand Up @@ -61,13 +61,15 @@ jobs:

- name: Assert - Check outputs
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
BUILD_PATH: ${{ steps.deploy-jekyll.outputs.build-path }}
with:
script: |
const assert = require("assert");
const { existsSync, readFileSync } = require("fs");
const path = require("path");

const buildPathOutput = ${{ toJSON(steps.deploy-jekyll.outputs.build-path) }};
const buildPathOutput = process.env.BUILD_PATH;
assert(buildPathOutput, `"build-path" output is empty`);

const workspacePath = process.env.GITHUB_WORKSPACE;
Expand Down Expand Up @@ -131,13 +133,15 @@ jobs:

- name: Assert - Check packed assets
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
BUILD_PATH: ${{ steps.deploy-jekyll.outputs.build-path }}
with:
# jscpd:ignore-start
script: |
const assert = require("assert");
const { existsSync } = require("fs");

const buildPathOutput = ${{ toJSON(steps.deploy-jekyll.outputs.build-path) }};
const buildPathOutput = process.env.BUILD_PATH;
assert(buildPathOutput, `"build-path" output is empty`);

// Check if the build assets path exists
Expand Down
Loading
Loading