Skip to content

chore(deps)(deps-dev): bump the lint group in /apps/api with 2 updates #410

chore(deps)(deps-dev): bump the lint group in /apps/api with 2 updates

chore(deps)(deps-dev): bump the lint group in /apps/api with 2 updates #410

name: validate
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: infra-bootstrap-validate-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
name: tofu fmt + validate
defaults:
run:
working-directory: infra/bootstrap
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Detect relevant changes
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
code:
- 'infra/bootstrap/**'
- '.github/workflows/infra-bootstrap-validate.yml'
- name: Install OpenTofu
if: steps.filter.outputs.code == 'true'
uses: opentofu/setup-opentofu@847eaa4afeb791b06daa46e8eafa8b1b68d7cfb4 # v2.0.1
with:
tofu_version: "1.12.0"
tofu_wrapper: false
- name: Check formatting
if: steps.filter.outputs.code == 'true'
run: tofu fmt -check -recursive -diff
# `-backend=false` lets us run without configuring real cloud credentials.
# Validate parses + type-checks the whole graph (root + every module),
# so it catches "unexpected attribute" / wrong-provider-syntax / missing
# variable errors before they hit `apply`.
- name: Initialize (no backend)
if: steps.filter.outputs.code == 'true'
run: tofu init -backend=false -input=false
- name: Validate root + every module
if: steps.filter.outputs.code == 'true'
run: |
set -euo pipefail
tofu validate -no-color
for module in modules/*/; do
echo "::group::tofu validate $module"
(cd "$module" && tofu init -backend=false -input=false >/dev/null && tofu validate -no-color)
echo "::endgroup::"
done