Skip to content

chore(deps): update ghcr.io/hrzlgnm/cappuchin-github-void-linux-glibc… #1206

chore(deps): update ghcr.io/hrzlgnm/cappuchin-github-void-linux-glibc…

chore(deps): update ghcr.io/hrzlgnm/cappuchin-github-void-linux-glibc… #1206

Workflow file for this run

name: "CI"
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
# measure against bitrot
# also rotates docker images monthly, by pushing new docker images
# the rotation will happen by renovate
# rotate the images in the middle of the month,
# to avoid duplicate rotations at the beginning of the month,
# as the source docker images are also mostly rotated once a month
schedule:
- cron: "0 0 15 * *"
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
concurrency:
# On main, we want all builds to complete even if merging happens faster to make it easier to discover at which point something broke.
group: ${{ github.ref == 'refs/heads/main' && format('ci-main-{0}', github.sha) || format('ci-{0}', github.ref) }}
cancel-in-progress: true
jobs:
changes:
name: "🔍 Detect Changes"
runs-on: ubuntu-slim
outputs:
branch: ${{ steps.branch.outputs.branch }}
clang-format: ${{ steps.filter.outputs.clang-format }}
cmake: ${{ steps.filter.outputs.cmake }}
cppcheck: ${{ steps.filter.outputs.cppcheck }}
code: ${{ steps.filter.outputs.code }}
docker: ${{ steps.filter.outputs.docker }}
tests: ${{ steps.filter.outputs.tests }}
steps:
- name: 🔄 Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: 🔍 Check for changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
docker:
- '.github/docker/**'
code:
- '.clang-tidy'
- '.github/workflows/build-and-test-reusable.yml'
- '.github/workflows/static-analysis-reusable.yml'
- 'cmake/**'
- 'source/**/*.hpp'
- 'source/**/*.cpp'
cmake:
- '**/CMakeLists.txt'
- '**/*.cmake'
- '.gersemirc'
clang-format:
- '.clang-format'
cppcheck:
- 'cppcheck/**'
tests:
- 'test/**'
- name: Output branch name
id: branch
run: |
echo "branch=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT
typos:
name: 📝 Check typos
if: always()
uses: hrzlgnm/actions/.github/workflows/typos-reusable.yml@815317ed5e6366a56c5a8abeb20493f92ae0084d # v1.5.6
clang-format:
name: 📐 Check code format
needs: changes
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.clang-format == 'true'
uses: hrzlgnm/actions/.github/workflows/clang-format-reusable.yml@815317ed5e6366a56c5a8abeb20493f92ae0084d # v1.5.6
gersemi:
name: 📐 Check CMake format
needs: changes
if: needs.changes.outputs.cmake == 'true'
uses: hrzlgnm/actions/.github/workflows/gersemi-reusable.yml@815317ed5e6366a56c5a8abeb20493f92ae0084d # v1.5.6
cppcheck:
name: 📘🔍Cppcheck
needs: changes
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.cppcheck == 'true'
uses: hrzlgnm/actions/.github/workflows/cppcheck-reusable.yml@815317ed5e6366a56c5a8abeb20493f92ae0084d # v1.5.6
build-and-test:
name: Build and Test
permissions:
checks: write # required for action-junit-report annotation
needs: changes
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.tests == 'true' || needs.changes.outputs.cmake == 'true'
uses: ./.github/workflows/build-and-test-reusable.yml
docker:
name: "🐳"
needs: changes
if: needs.changes.outputs.docker == 'true'
permissions:
contents: read
packages: write # Needed to push to GHCR
uses: hrzlgnm/actions/.github/workflows/docker-reusable.yml@815317ed5e6366a56c5a8abeb20493f92ae0084d # v1.5.6
with:
branch: ${{ needs.changes.outputs.branch }}
static-analysis:
name: Static Analysis
needs: changes
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.tests == 'true' || needs.changes.outptus.cppcheck == 'true'
uses: ./.github/workflows/static-analysis-reusable.yml
all-required-green: # This job does nothing and is only used for the branch protection
name: CI Status
runs-on: ubuntu-latest
needs:
- build-and-test
- clang-format
- cppcheck
- docker
- gersemi
- static-analysis
- typos
if: always()
steps:
- name: Check whether the needed jobs succeeded or failed
uses: re-actors/alls-green@2765efec08f0fd63e83ad900f5fd75646be69ff6
with:
allowed-skips: >-
build-and-test,
clang-format,
cppcheck,
docker,
gersemi,
static-analysis
jobs: ${{ toJSON(needs) }}