pokerogue/.github/workflows/linting.yml
Domagoj 65c72c65b9
[Dev] Add Podman support (#6150)
* Add Dockerfile

* Refactor for improved podman support

* Podman support + docs

* Update documentation for podman usage

* Update docs/podman.md with working podman run command

* Add package manager constraint to package.json and Dockerfile
Update podman.md docs

* Remove package manager constraints from github workflows per DayKev
Update podman.md docs with extra steps for locales and testing command
Remove missleading comment from Dockerfile

* Remove Dockerfile comment

* Re-add `pnpm` version to Github Pages workflow

* Mention podman in CONTRIBUTING.md
Fix typo in docs/podman.md test command

* Fix path to docs/podman.md

---------

Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
2025-09-10 14:23:13 -05:00

110 lines
3.0 KiB
YAML

name: Linting
on:
push:
branches:
- main
- beta
- release
- 'hotfix*'
pull_request:
branches:
- main
- beta
- release
- 'hotfix*'
merge_group:
types: [checks_requested]
jobs:
run-linters:
name: Run all linters
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install Node modules
run: pnpm i
# Lint files with Biome-Lint - https://biomejs.dev/linter/
- name: Run Biome-Lint
run: pnpm biome-ci
id: biome_lint
continue-on-error: true
# Validate dependencies with dependency-cruiser - https://github.com/sverweij/dependency-cruiser
- name: Run Dependency-Cruise
run: pnpm depcruise
id: depcruise
continue-on-error: true
# Validate types with tsc - https://www.typescriptlang.org/docs/handbook/compiler-options.html#using-the-cli
- name: Run Typecheck
run: pnpm typecheck
id: typecheck
continue-on-error: true
# The exact same thing
- name: Run Typecheck (scripts)
run: pnpm typecheck:scripts
id: typecheck-scripts
continue-on-error: true
- name: Evaluate for Errors
env:
BIOME_LINT_OUTCOME: ${{ steps.biome_lint.outcome }}
DEPCRUISE_OUTCOME: ${{ steps.depcruise.outcome }}
TYPECHECK_OUTCOME: ${{ steps.typecheck.outcome }}
TYPECHECK_SCRIPTS_OUTCOME: ${{ steps.typecheck-scripts.outcome }}
run: |
# Check for Errors
# Make text red.
red () {
printf "\e[31m%s\e[0m" "$1"
}
# Make text green.
green () {
printf "\e[32m%s\e[0m" "$1"
}
print_result() {
local name=$1
local outcome=$2
if [ "$outcome" == "success" ]; then
printf "$(green "✅ $name: $outcome")\n"
else
printf "$(red "❌ $name: $outcome")\n"
fi
}
print_result "Biome" "$BIOME_LINT_OUTCOME"
print_result "Depcruise" "$DEPCRUISE_OUTCOME"
print_result "Typecheck" "$TYPECHECK_OUTCOME"
print_result "Typecheck scripts" "$TYPECHECK_SCRIPTS_OUTCOME"
if [[ "$BIOME_LINT_OUTCOME" != "success" || \
"$DEPCRUISE_OUTCOME" != "success" || \
"$TYPECHECK_OUTCOME" != "success" || \
"$TYPECHECK_SCRIPTS_OUTCOME" != "success" ]]; then
printf "$(red "❌ One or more checks failed!")\n" >&2
exit 1
fi
printf "$(green "✅ All checks passed!")\n"