diff --git a/.github/workflows/github-action-validator.sh b/.github/workflows/github-action-validator.sh new file mode 100755 index 000000000..7904a4025 --- /dev/null +++ b/.github/workflows/github-action-validator.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Inspired from https://github.com/mpalmer/action-validator?tab=readme-ov-file#pre-commit-hook-example +echo "Running pre-commit hook for GitHub Actions: https://github.com/mpalmer/action-validator" + for action in $(git ls-files .github/ | grep -E '^\.github/(workflows|actions)/.*\.ya?ml$'); do + if action-validator "$action"; then + echo "✅ $action" + else + echo "❌ $action" + exit 1 + fi +done diff --git a/.github/workflows/github-action-validator.yml b/.github/workflows/github-action-validator.yml new file mode 100644 index 000000000..e6d07b56e --- /dev/null +++ b/.github/workflows/github-action-validator.yml @@ -0,0 +1,28 @@ +name: Validate All GitHub Actions + +on: + push: + branches: + - "master" + - "[0-9].[0-9]" + pull_request: + types: [synchronize, opened, reopened, ready_for_review] + +jobs: + + validate-all-ghas: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install Dependencies + run: npm install -g @action-validator/core @action-validator/cli --save-dev + + - name: Run Script + run: bash .github/workflows/github-action-validator.sh diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 7de661948..dc0ecd7e7 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -19,8 +19,8 @@ on: default: 'false' description: Whether to force a latest tag on the release options: - - true - - false + - 'true' + - 'false' jobs: config: runs-on: "ubuntu-latest"