Pin nested actions used by coverage jobs

This commit is contained in:
skylar taylor-barrick
2026-10-26 00:31:46 +01:00
parent 68edd37a04
commit 37915418af
2 changed files with 20 additions and 6 deletions
+6 -6
View File
@@ -85,7 +85,7 @@ jobs:
with:
persist-credentials: false
- name: Check out craft-fonts
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@main
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
ref: ${{ inputs.fonts-ref }}
- name: Require requested craft-fonts
@@ -95,7 +95,7 @@ jobs:
- name: Free disk space
run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
- name: Install Linux build dependencies
uses: storytold/craft-common-actions/actions/install-apt-packages@main
uses: storytold/craft-common-actions/actions/install-apt-packages@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
packages: >-
pkg-config libxkbcommon-dev libwayland-dev libx11-dev libxcursor-dev libxrandr-dev
@@ -153,7 +153,7 @@ jobs:
with:
persist-credentials: false
- name: Check out craft-fonts
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@main
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
ref: ${{ inputs.fonts-ref }}
- name: Require requested craft-fonts
@@ -161,7 +161,7 @@ jobs:
shell: bash
run: echo "CRAFT_FONTS_REQUIRED=1" >> "$GITHUB_ENV"
- name: Install Linux build dependencies
uses: storytold/craft-common-actions/actions/install-apt-packages@main
uses: storytold/craft-common-actions/actions/install-apt-packages@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
packages: >-
pkg-config libxkbcommon-dev libwayland-dev libx11-dev libxcursor-dev libxrandr-dev
@@ -237,7 +237,7 @@ jobs:
printf 'key=%s\n' "$PROJECT_KEY" >>"$GITHUB_OUTPUT"
- name: Check out craft-fonts
if: steps.token.outputs.available == 'true' && inputs.shards <= 1
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@main
uses: storytold/craft-common-actions/actions/checkout-craft-fonts@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
ref: ${{ inputs.fonts-ref }}
- name: Require requested craft-fonts
@@ -250,7 +250,7 @@ jobs:
run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
- name: Install Linux build dependencies
if: steps.token.outputs.available == 'true' && hashFiles('Cargo.toml') != '' && inputs.shards <= 1
uses: storytold/craft-common-actions/actions/install-apt-packages@main
uses: storytold/craft-common-actions/actions/install-apt-packages@395270d2c0bd48ce1b71ae127f2a54e435fc1b42
with:
packages: >-
pkg-config libxkbcommon-dev libwayland-dev libx11-dev libxcursor-dev libxrandr-dev
+14
View File
@@ -84,6 +84,20 @@ class SonarCloudTests(unittest.TestCase):
self.assertIn('--output-path lcov.info', coverage['run'])
self.assertEqual(coverage['continue-on-error'], 'true')
def test_coverage_actions_use_immutable_revisions(self):
workflow = yaml.load(
(ROOT / '.github/workflows/sonarcloud.yml').read_text(), Loader=yaml.BaseLoader)
step_groups = [job.get('steps', []) for job in workflow['jobs'].values()]
for helper in ('checkout-craft-fonts', 'install-apt-packages'):
action = yaml.load(
(ROOT / 'actions' / helper / 'action.yml').read_text(), Loader=yaml.BaseLoader)
step_groups.append(action['runs']['steps'])
for steps in step_groups:
for step in steps:
if 'uses' in step:
with self.subTest(action=step['uses']):
self.assertRegex(step['uses'], r'^[^@]+@[0-9a-f]{40}$')
def test_archive_build_has_the_same_fonts_as_runtime(self):
workflow = yaml.load(
(ROOT / '.github/workflows/sonarcloud.yml').read_text(), Loader=yaml.BaseLoader)