Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
4dfdbde
ci(lint): add workflow and taskfiles
DariuszPorowski Dec 18, 2025
91d3694
fix: add sudo to uv setup command for proper execution
DariuszPorowski Dec 18, 2025
48f4229
ci: update task commands for consistency and improve script permissions
DariuszPorowski Dec 18, 2025
88e61e6
ci: remove sudo from uv setup command and add install_goreleaser script
DariuszPorowski Dec 18, 2025
dd7dfb2
Update .taskfiles/azure.Taskfile.yml
DariuszPorowski Dec 18, 2025
b39805c
Update .taskfiles/scripts/install_bicep.sh
DariuszPorowski Dec 18, 2025
d2fc78b
fix: uncomment installation command for GoReleaser in golang.Taskfile…
DariuszPorowski Dec 18, 2025
4b129c4
ci: update test tools setup command for consistency
DariuszPorowski Dec 18, 2025
568df26
ci: enhance linting tasks for Go, Markdown, and YAML tools
DariuszPorowski Dec 18, 2025
f1b659c
ci: add GitHub CLI and linting tools installation scripts
DariuszPorowski Dec 18, 2025
e65d5bf
ci: add bin path setup for linting tasks and update error messages fo…
DariuszPorowski Dec 18, 2025
e1484f0
ci: add shell linting tools and configuration files
DariuszPorowski Dec 18, 2025
3da071a
ci: fix argument parsing formatting in create-e2e-service-principals.sh
DariuszPorowski Dec 18, 2025
3a89c17
ci: update devcontainer and taskfiles for Terraform and OpenTofu inst…
DariuszPorowski Dec 18, 2025
dc497f7
ci: improve error messages for tool installation verification scripts
DariuszPorowski Dec 18, 2025
eb48c08
ci: add merge_group trigger to lint workflow
DariuszPorowski Dec 18, 2025
0d68867
ci: add step to ensure bin path in e2e tests workflow
DariuszPorowski Dec 18, 2025
c8d2c34
ci: update bin path setup for Linux and Windows in workflows
DariuszPorowski Dec 18, 2025
8185af4
ci: fix command syntax in Bicep validation task
DariuszPorowski Dec 18, 2025
8262508
ci: update bin path setup for Linux and Windows in lint and e2e tests…
DariuszPorowski Dec 18, 2025
30efced
ci: remove unnecessary --exact flag from winget install command
DariuszPorowski Dec 18, 2025
67693a9
ci: update Windows installation paths in lint and e2e tests workflows
DariuszPorowski Dec 18, 2025
812bc42
ci: fix command syntax in Terraform validation task
DariuszPorowski Dec 18, 2025
b101f97
ci: add concurrency settings to CI workflows
DariuszPorowski Dec 18, 2025
5fd6942
ci: update YAML linting rules and Goreleaser configuration
DariuszPorowski Dec 18, 2025
4db4a76
ci: update curl commands to include GitHub API authentication headers
DariuszPorowski Dec 18, 2025
91e2f04
ci: remove unnecessary TLS version specification in curl commands
DariuszPorowski Dec 18, 2025
51514f8
ci: add delays for Azure RBAC propagation after role assignments
DariuszPorowski Dec 18, 2025
d2e6d94
ci: remove deprecated PowerShell script for creating E2E service prin…
DariuszPorowski Dec 18, 2025
e66f217
ci: remove trailing whitespace in cleanup-tmp-roles.sh
DariuszPorowski Dec 18, 2025
d8048fe
ci: ensure response body is closed and handle non-success status code…
DariuszPorowski Dec 18, 2025
90c9daa
ci: ignore error check for deferred response body closure in DeleteCu…
DariuszPorowski Dec 19, 2025
b4938a4
ci: add clean task for removing Terraform files and directories
DariuszPorowski Dec 19, 2025
b265283
ci: add logging for Azure RBAC propagation and required permissions i…
DariuszPorowski Dec 19, 2025
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
52 changes: 41 additions & 11 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,62 @@
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": false
},
"ghcr.io/devcontainers/features/azure-cli:1": {
"version": "2.82.0",
"installBicep": true
"ghcr.io/eitsupi/devcontainer-features/jq-likes:2": {
// ? move to Taskfile?
"jqVersion": "latest",
"yqVersion": "latest",
"gojqVersion": "latest",
"jaqVersion": "latest"
},
"ghcr.io/devcontainers/features/terraform:1": {
"version": "1.10.4"
},
"ghcr.io/devcontainers/features/go:1": {
"version": "1.25.5"
},
"ghcr.io/devcontainers/features/powershell:1": {},
"ghcr.io/eitsupi/devcontainer-features/go-task:1": {}
},
"workspaceMount": "source=${localWorkspaceFolder},target=${containerWorkspaceFolder},type=bind,consistency=cached",
"workspaceFolder": "/workspace",
"remoteEnv": {
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
},
"onCreateCommand": {
"init": "task init"
},
"postCreateCommand": {
"git-safe-dir": "git config --global --add safe.directory ${containerWorkspaceFolder}"
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"powershell.powerShellAdditionalExePaths": {
"pwsh": "/usr/bin/pwsh"
},
"powershell.powerShellDefaultVersion": "pwsh",
"shellformat.path": "/home/${remoteUser}/.local/bin/shfmt"
},
"extensions": [
"redhat.vscode-yaml",
"golang.go",
"ms-vscode.powershell",
"ms-azuretools.vscode-bicep",
"hashicorp.terraform"
"edwinhuish.better-comments-next",
"timonwong.shellcheck",
"task.vscode-task",
"esbenp.prettier-vscode",
"fnando.linter",
"ms-azuretools.vscode-azure-github-copilot",
"ms-azuretools.vscode-docker",
"davidanson.vscode-markdownlint",
"hashicorp.terraform",
"github.copilot",
"github.copilot-chat",
"github.vscode-github-actions",
"github.vscode-pull-request-github",
"github.codespaces",
"github.remotehub",
"bierner.github-markdown-preview",
"usernamehw.errorlens",
"lumirelle.shell-format-rev",
"editorconfig.editorconfig"
]
}
}
Expand Down
10 changes: 0 additions & 10 deletions .env.sh

This file was deleted.

60 changes: 0 additions & 60 deletions .github/linters/.lychee.toml

This file was deleted.

2 changes: 2 additions & 0 deletions .github/linters/.markdownlint-cli2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ ignores:
- .git
- "**/node_modules/**"
- .copilot-tracking/**
- venv/**
- .venv/**
2 changes: 1 addition & 1 deletion .github/linters/.markdownlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ MD029:
# MD033/no-inline-html - Inline HTML
MD033:
# Allowed elements
allowed_elements: [br, pre, a]
allowed_elements: [br, pre]
Comment thread
DariuszPorowski marked this conversation as resolved.

# MD036/no-emphasis-as-heading - Emphasis used instead of a heading
MD036: false
Expand Down
38 changes: 38 additions & 0 deletions .github/linters/.prettierrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# yaml-language-server: $schema=https://www.schemastore.org/prettierrc.json
---
arrowParens: always
bracketSpacing: true
endOfLine: lf
htmlWhitespaceSensitivity: css
insertPragma: false # consider true
singleAttributePerLine: false
bracketSameLine: false
jsxSingleQuote: true
printWidth: 120
proseWrap: preserve
quoteProps: as-needed
requirePragma: false # consider true
semi: true
singleQuote: true
tabWidth: 2
trailingComma: none
useTabs: false
vueIndentScriptAndStyle: true
embeddedLanguageFormatting: auto
experimentalTernaries: true
experimentalOperatorPosition: end
# multilineArraysWrapThreshold: 1
# plugins:
# - prettier-plugin-multiline-arrays

# Language-specific overrides
overrides:
- files: "*.md"
options:
proseWrap: always
- files: "*.yml"
options:
singleQuote: false
- files: "*.yaml"
options:
singleQuote: false
3 changes: 3 additions & 0 deletions .github/linters/.shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# .shellcheckrc

disable=SC3037,SC2086,SC2155
29 changes: 29 additions & 0 deletions .github/linters/.yamllint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# yaml-language-server: $schema=https://www.schemastore.org/yamllint.json
# docs: https://yamllint.readthedocs.io/en/stable/configuration.html#extending-the-default-configuration
---
extends: default

locale: en_US.UTF-8

rules:
document-start:
level: warning
ignore:
- .cspell.yml
line-length: disable
quoted-strings:
level: error
quote-type: double
required: only-when-needed
comments:
min-spaces-from-content: 1
braces:
level: warning
min-spaces-inside: 0
max-spaces-inside: 1
truthy:
check-keys: false

ignore-from-file:
- .gitignore
- .yamlignore
20 changes: 20 additions & 0 deletions .github/linters/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
self-hosted-runner:
# Labels of self-hosted runner in array of strings.
labels: []

# Configuration variables in array of strings defined in your repository or
# organization. `null` means disabling configuration variables check.
# Empty array means no configuration variable is allowed.
config-variables: null

# Configuration for file paths. The keys are glob patterns to match to file
# paths relative to the repository root. The values are the configurations for
# the file paths. Note that the path separator is always '/'.
# The following configurations are available.
#
# "ignore" is an array of regular expression patterns. Matched error messages
# are ignored. This is similar to the "-ignore" command line option.
paths:
# .github/workflows/**/*.yml:
# ignore: []
77 changes: 6 additions & 71 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,89 +14,24 @@ on:
- main
types:
- opened
- reopened
- synchronize
- ready_for_review
merge_group:
# schedule:
# - cron: "0 2 * * *"
workflow_dispatch:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
CLI_VERSION: ${{ github.sha }}

permissions: {}

jobs:
lint-go:
name: 🧹 Lint Go
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: read
pull-requests: read
steps:
- name: ⤵️ Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false

- name: 🚧 Setup Go
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with:
go-version-file: go.mod
cache: true

- name: 🚧 Setup Task
uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0

- name: 🔀 Get dependencies
run: task deps

- name: ✔️ Run GoVulnCheck
run: |
task install:govulncheck
task govulncheck || (echo "::warning::govulncheck found issues" && exit 0)

- name: ✔️ Run Go linters
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
version: latest
only-new-issues: true
skip-cache: true
skip-save-cache: true
problem-matchers: true

lint-markdown:
name: 🧹 Lint Markdown
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: read
steps:
- name: ⤵️ Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false

- name: 🚧 Setup Go
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with:
go-version-file: go.mod
cache: true

- name: 🚧 Setup Task
uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0

- name: 🔨 Setup tools
run: |
task install:markdownlint

- name: ✔️ Run Files linters
run: task lint:md

build:
name: 🏗️ Build
runs-on: ubuntu-24.04
Expand All @@ -122,7 +57,7 @@ jobs:
run: task deps:download

- name: 🔨 Setup Build tools
run: task install:goreleaser
run: task go:install:goreleaser

- name: 🏗️ Build
run: task build
Expand Down Expand Up @@ -155,7 +90,7 @@ jobs:
run: task deps:download

- name: 🔨 Setup Test tools
run: task test:tools
run: task go:tools:test

- name: 🧪 Run Tests
run: task testunit
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,4 @@ jobs:
- name: 🕵️ Run Dependency Review
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
with:
vulnerability-check: true
license-check: true
show-openssf-scorecard: true
comment-summary-in-pr: always
comment-summary-in-pr: on-failure
Comment thread
DariuszPorowski marked this conversation as resolved.
Loading