Skip to content

Commit

Permalink
Add and sync actionlint workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
carlocab committed Oct 31, 2024
1 parent f2e887f commit 0567e52
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .github/actions/sync/shared-config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def git(*args)
rubocop_yaml = ".rubocop.yml"
dependabot_yaml = ".github/dependabot.yml"
docs_workflow_yaml = ".github/workflows/docs.yml"
actionlint_workflow_yaml = ".github/workflows/actionlint.yml"
vale_ini = ".vale.ini"

target_gemfile_lock = target_directory_path/"Gemfile.lock"
Expand Down Expand Up @@ -98,6 +99,10 @@ def git(*args)
rubydoc.brew.sh
ruby-macho
].freeze
custom_actionlint_repos = %w[
brew
homebrew-core
]
rejected_docs_basenames = %w[
_config.yml
CNAME
Expand All @@ -116,6 +121,7 @@ def git(*args)
rubocop_yaml,
dependabot_yaml,
deprecated_lock_threads,
actionlint_workflow_yaml,
".github/workflows/stale-issues.yml",
].each do |path|
target_path = target_directory_path/path
Expand Down Expand Up @@ -166,6 +172,10 @@ def git(*args)
next unless docs_path.directory?

FileUtils.cp homebrew_docs_workflow_yaml, target_path
when actionlint_workflow_yaml
next if custom_actionlint_repos.include?(repository_name)

FileUtils.cp actionlint_workflow_yaml, target_path
when vale_ini
next if custom_docs_repos.include?(repository_name)

Expand Down
79 changes: 79 additions & 0 deletions .github/workflows/actionlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# This file is synced from the `.github` repository, do not modify it directly.
name: Workflow Syntax

on:
push:
branches:
- main
paths:
- '.github/workflows/*.ya?ml'
pull_request:
paths:
- '.github/workflows/*.ya?ml'

defaults:
run:
shell: bash -xeuo pipefail {0}

concurrency:
group: "actionlint-${{ github.ref }}"
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

env:
HOMEBREW_DEVELOPER: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_ENV_HINTS: 1

permissions: {}

jobs:
workflow_syntax:
if: github.repository_owner == 'Homebrew'
runs-on: ubuntu-latest
steps:
- name: Set up Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@master
with:
core: false
cask: false
test-bot: false

- name: Install tools
run: brew install actionlint shellcheck zizmor

- uses: actions/checkout@v4
with:
persist-credentials: false

- run: zizmor --format sarif . >results.sarif

- name: Upload SARIF file
uses: actions/upload-artifact@v4
with:
name: results.sarif
path: results.sarif

- name: Set up actionlint
run: echo "::add-matcher::$(brew --repository)/.github/actionlint-matcher.json"

- run: actionlint

upload_sarif:
needs: workflow_syntax
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- name: Download SARIF file
uses: actions/download-artifact@v4
with:
name: results.sarif
path: results.sarif

- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
category: zizmor

0 comments on commit 0567e52

Please sign in to comment.