CI: Add new reusable workflows for GitHub Actions

This commit is contained in:
PatTheMav
2023-07-17 20:09:53 +02:00
parent d6b98def22
commit 96a48e86c3
8 changed files with 1291 additions and 0 deletions
@@ -0,0 +1,58 @@
name: Compatibility Data Validator
description: Checks Windows compatibility data files
inputs:
repositorySecret:
description: GitHub token for API access
required: true
workingDirectory:
description: Working directory for checks
required: false
default: ${{ github.workspace }}
runs:
using: composite
steps:
- name: Check Runner Operating System 🏃‍♂️
if: runner.os == 'Windows'
shell: bash
run: |
: Check Runner Operating System 🏃‍♂️
echo "services-validation action requires a macOS-based or Linux-based runner."
exit 2
- name: Install and Configure Python 🐍
shell: bash
run: |
: Install and Configure Python 🐍
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
echo ::group::Python Set Up
if [[ "${RUNNER_OS}" == Linux ]]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
fi
brew install --quiet python3
python3 -m pip install jsonschema json_source_map
echo ::endgroup::
- name: Validate Compatibility Files JSON Schema 🕵️
shell: bash
working-directory: ${{ inputs.workingDirectory }}
run: |
: Validate services file JSON schema 🕵️
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
shopt -s extglob
echo ::group::Schema Validation
python3 -u \
.github/scripts/utils.py/check-jsonschema.py \
--loglevel INFO \
plugins/win-capture/data/@(compatibility|package).json
echo ::endgroup::
- name: Annotate Schema Validation Errors 🏷️
uses: yuzutech/annotations-action@v0.4.0
if: failure()
with:
repo-token: ${{ inputs.repositorySecret }}
title: Compatibility JSON Errors
input: ${{ inputs.workingDirectory }}/validation_errors.json