Skip to content

Commit

Permalink
build: add very experimental MegaLinter config files (#1974)
Browse files Browse the repository at this point in the history
* build: add MegaLinter config files

* build: disable errors of some linters

* chore: temporarily enable linting for all codes

* build: disable stylelint because of looong time required in CI

* chore: auto formatting

* build: disable all Linter errors that are currently causing errors

* build: disable markdown-link-chack's error

* build: disable megalinter's GitHub comment reporter

* chore: add comments in megalinter config files

* docs: add note about MegaLinter

* Revert "chore: temporarily enable linting for all codes"

This reverts commit a665b2d.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* build: fix workflow trigger not to run twice in PR from other branch

---------

Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
3 people committed Mar 1, 2023
1 parent 4b4a810 commit c75c785
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 0 deletions.
105 changes: 105 additions & 0 deletions .github/workflows/mega-linter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# This MegaLinter workflow is very experimental stage. Open to changes and updates.
# https://github.com/PRQL/prql/pull/1974

# MegaLinter GitHub Action configuration file
# More info at https://megalinter.io
name: MegaLinter

on:
push:
branches:
- main
pull_request:
branches:
- main

env: # Comment env block if you do not want to apply fixes
# Apply linter fixes configuration
# APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment variable (in github/workflows/mega-linter.yml or other CI tool)
APPLY_FIXES_EVENT: pull_request # Decide which event triggers application of fixes in a commit or a PR (pull_request, push, all)
APPLY_FIXES_MODE: commit # If APPLY_FIXES is used, defines if the fixes are directly committed (commit) or posted in a PR (pull_request)

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
build:
name: MegaLinter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # If you use VALIDATE_ALL_CODEBASE = true, you can remove this line to improve performances

# MegaLinter
- name: MegaLinter
id: ml
# You can override MegaLinter flavor used to have faster performances
# More info at https://megalinter.io/flavors/
uses: oxsecurity/megalinter@v6
env:
# All available variables are described in documentation
# https://megalinter.io/configuration/
VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref
== 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY
# DISABLE: COPYPASTE,SPELL # Uncomment to disable copy-paste and spell checks

# Upload MegaLinter artifacts
- name: Archive production artifacts
if: ${{ success() }} || ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: MegaLinter reports
path: |
megalinter-reports
mega-linter.log
# Create pull request if applicable (for now works only on PR from same repository, not from forks)
- name: Create Pull Request with applied fixes
id: cpr
if:
steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT ==
'all' || env.APPLY_FIXES_EVENT == github.event_name) &&
env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push'
|| github.event.pull_request.head.repo.full_name == github.repository)
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
commit-message: "[MegaLinter] Apply linters automatic fixes"
title: "[MegaLinter] Apply linters automatic fixes"
labels: bot
- name: Create PR output
if:
steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT ==
'all' || env.APPLY_FIXES_EVENT == github.event_name) &&
env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push'
|| github.event.pull_request.head.repo.full_name == github.repository)
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
# Push new commit if applicable (for now works only on PR from same repository, not from forks)
- name: Prepare commit
if:
steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT ==
'all' || env.APPLY_FIXES_EVENT == github.event_name) &&
env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' &&
(github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository)
run: sudo chown -Rc $UID .git/
- name: Commit and push applied linter fixes
if:
steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT ==
'all' || env.APPLY_FIXES_EVENT == github.event_name) &&
env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' &&
(github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository)
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch:
${{ github.event.pull_request.head.ref || github.head_ref ||
github.ref }}
commit_message: "[MegaLinter] Apply linters fixes"
34 changes: 34 additions & 0 deletions .mega-linter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# This MegaLinter config is very experimental stage. Open to changes and updates.
# https://github.com/PRQL/prql/pull/1974

GITHUB_COMMENT_REPORTER: false
DISABLE:
- RUST
- JAVASCRIPT
- PYTHON
DISABLE_LINTERS:
- SPELL_CSPELL
- CSS_STYLELINT
DISABLE_ERRORS_LINTERS:
- COPYPASTE_JSCPD
- REPOSITORY_TRIVY
- REPOSITORY_CHECKOV
- REPOSITORY_DEVSKIM
- ACTION_ACTIONLINT
- BASH_SHELLCHECK
- C_CPPLINT
- CPP_CPPLINT
- DOCKERFILE_HADOLINT
- HTML_DJLINT
- HTML_HTMLHINT
- JAVA_CHECKSTYLE
- JAVA_PMD
- JSON_JSONLINT
- MAKEFILE_CHECKMAKE
- MARKDOWN_MARKDOWN_LINK_CHECK
- PHP_PHPCS
- PHP_PHPSTAN
- PHP_PSALM
- SPELL_MISSPELL
- SQL_TSQLLINT
- YAML_V8R
3 changes: 3 additions & 0 deletions book/src/contributing/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,9 @@ Our tests, from the bottom of the pyramid to the top:
on GitHub on every commit; any changes they make are added onto the branch
automatically in an additional commit.
- Checking by [MegaLinter](https://megalinter.io/latest/), which includes more
Linters, is also done automatically on GitHub. (experimental)
- **Unit tests & inline insta snapshots** — we rely on unit tests to rapidly
check that our code basically works. We extensively use
[Insta](https://insta.rs/), a snapshot testing tool which writes out the
Expand Down

0 comments on commit c75c785

Please sign in to comment.