Skip to content

fix(ci): provision tools for self-hosted checks#18

Open
somethingwithproof wants to merge 5 commits into
mainfrom
fix/ci-toolchain-setup
Open

fix(ci): provision tools for self-hosted checks#18
somethingwithproof wants to merge 5 commits into
mainfrom
fix/ci-toolchain-setup

Conversation

@somethingwithproof

@somethingwithproof somethingwithproof commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • refresh the Terraform toolchain and run it on GitHub-hosted runners
  • install yamllint explicitly and run it directly instead of relying on the action entrypoint finding yamllint

Validation

  • parsed .github/workflows/ci.yaml with Python YAML loader
  • pre-commit hooks passed during commit

Summary by CodeRabbit

  • Chores
    • Updated YAML validation in CI to use a Python-based linting setup.
    • Added consistent linting rules for files in the Argo CD configuration directory (including line-length warnings and parser-friendly output).

Toolchain upgrade

  • upgrade Terraform from 1.6.0 to 1.15.8 to use the currently supported CLI on the refreshed runner; validated with terraform fmt, init -backend=false, and validate in terraform/environments/dev

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The yaml-lint CI job now provisions Python 3.12, installs yamllint with pip, and runs it directly against argocd/ using inline configuration.

Changes

CI YAML lint migration

Layer / File(s) Summary
YAML lint workflow execution
.github/workflows/ci.yaml
Replaces the ibiqlik/action-yamllint step with Python setup, yamllint installation, inline rules, and parsable output.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

I’m a bunny in the CI lane,
Hopping through YAML once again.
Python boots, lint checks gleam,
Clean configs join the build-time stream.
Thump, thump—green is the dream!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the CI-focused change to provision missing tools for self-hosted checks.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ci-toolchain-setup

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CI workflow to better support self-hosted runners by provisioning runtime dependencies needed by the Terraform and YAML linting steps.

Changes:

  • Add a Node.js setup step (Node 24) before running hashicorp/setup-terraform on the self-hosted runner.
  • Replace the ibiqlik/action-yamllint action with an explicit Python-based yamllint install and direct invocation.
  • Update the configured Terraform version used by CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yaml Outdated
Comment thread .github/workflows/ci.yaml Outdated
Comment thread .github/workflows/ci.yaml Outdated
Comment thread .github/workflows/ci.yaml Outdated
auto-merge was automatically disabled July 20, 2026 09:24

Head branch was pushed to by a user without write access

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yaml:
- Around line 68-69: Update the CI yamllint installation step to pin yamllint to
version 1.35.1, matching .pre-commit-config.yaml, and change the pre-commit
yamllint hook flag from -c to -d so the inline configuration is interpreted
correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2641ca7e-cedf-4594-a1c5-3dc5f553beee

📥 Commits

Reviewing files that changed from the base of the PR and between fb94032 and bb6bdc6.

📒 Files selected for processing (1)
  • .github/workflows/ci.yaml

Comment thread .github/workflows/ci.yaml Outdated
Comment on lines +68 to +69
- name: Install yamllint
run: python -m pip install --upgrade yamllint

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify the yamllint version and arguments in the pre-commit configuration.

cat .pre-commit-config.yaml | grep -A 5 "yamllint"

Repository: somethingwithproof/gitops-infrastructure-demo

Length of output: 488


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "CI workflow excerpt:"
sed -n '60,80p' .github/workflows/ci.yaml

echo
echo "yamllint hook excerpt:"
sed -n '1,80p' .pre-commit-config.yaml

Repository: somethingwithproof/gitops-infrastructure-demo

Length of output: 1632


🌐 Web query:

yamllint CLI options -c config file path -d config data documentation

💡 Result:

To configure yamllint, you can use CLI options or rely on automatic configuration file detection [1]. CLI Options for Configuration -c, --config-file: Specifies a custom configuration file path [1][2]. Example: yamllint -c /path/to/myconfig file.yaml [1][3] -d, --config-data: Passes configuration directly as a YAML string or a pre-defined configuration name (e.g., default or relaxed) [1][2]. Example: yamllint -d "{extends: relaxed, rules: {line-length: {max: 120}}}" file.yaml [1][4] Automatic Configuration File Detection If no configuration file is specified via -c, yamllint searches for one in the following order of preference [1][3]: 1. A file named.yamllint,.yamllint.yaml, or.yamllint.yml in the current working directory or any parent directory (search terminates at the home directory or filesystem root) [1][4]. 2. A file referenced by the $YAMLLINT_CONFIG_FILE environment variable [1][2]. 3. A file named $XDG_CONFIG_HOME/yamllint/config or ~/.config/yamllint/config [1][4]. If no configuration file is found in these locations, the default configuration is applied [1][3]. Full documentation is available at the official yamllint documentation site [5][6].

Citations:


Pin yamllint to the hook version and fix the hook flag.

  • Use yamllint==1.35.1 in CI so it matches .pre-commit-config.yaml.
  • Update the pre-commit hook to -d; -c treats the inline config as a file path.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yaml around lines 68 - 69, Update the CI yamllint
installation step to pin yamllint to version 1.35.1, matching
.pre-commit-config.yaml, and change the pre-commit yamllint hook flag from -c to
-d so the inline configuration is interpreted correctly.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/ci.yaml
@somethingwithproof
somethingwithproof enabled auto-merge (squash) July 20, 2026 21:24
@somethingwithproof

Copy link
Copy Markdown
Owner Author

@copilot Fix the code for all comments in this review thread.

When a review comment includes a suggested change, apply the suggestion exactly.

Do not make changes beyond what is described in the linked review thread.

Copilot AI commented Jul 20, 2026

Copy link
Copy Markdown

@copilot Fix the code for all comments in this review thread.

When a review comment includes a...

I checked the linked review thread (pullrequestreview-4734249011). The only code-related item there is already addressed by commit 1a97638, and no additional code changes are needed for that thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants