- # SPDX-FileCopyrightText: 2026 Slavi Pantaleev
- #
- # SPDX-License-Identifier: AGPL-3.0-or-later
-
- ---
- name: Renovate smoke test
-
- on: # yamllint disable-line rule:truthy
- push:
- paths:
- - '.github/renovate.json'
- - '.github/workflows/renovate-smoke-test.yml'
- - '.github/workflows/renovate.yml'
- pull_request:
- paths:
- - '.github/renovate.json'
- - '.github/workflows/renovate-smoke-test.yml'
- - '.github/workflows/renovate.yml'
- workflow_dispatch:
-
- permissions:
- contents: read
-
- jobs:
- validate:
- name: Validate config with the pinned Renovate image
- runs-on: ubuntu-latest
-
- # Same-repository pull requests already run via the push event;
- # run pull_request jobs only for pull requests from forks.
- if: >-
- github.event_name != 'pull_request'
- || github.event.pull_request.head.repo.full_name != github.repository
-
- steps:
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
-
- - name: Resolve the pinned Renovate version
- id: renovate_version
- shell: bash
- run: |
- set -euo pipefail
-
- mapfile -t versions < <(
- sed -n "s/^ MATRIX_RENOVATE_VERSION: '\([^']*\)'$/\1/p" \
- .github/workflows/renovate.yml
- )
-
- if (( ${#versions[@]} != 1 )) || [[ -z "${versions[0]}" ]]; then
- echo 'Could not resolve exactly one pinned Renovate version' >&2
- exit 1
- fi
-
- echo "version=${versions[0]}" >> "$GITHUB_OUTPUT"
-
- - name: Validate the Renovate configuration
- env:
- RENOVATE_VERSION: ${{ steps.renovate_version.outputs.version }}
- run: |
- docker run --rm \
- --volume "$GITHUB_WORKSPACE:/workspace:ro" \
- --workdir /workspace \
- --entrypoint renovate-config-validator \
- "ghcr.io/renovatebot/renovate:$RENOVATE_VERSION" \
- --strict
|