Commit feb07c8f authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

Merge branch...

Merge branch '3-pre-commit-config-should-fallback-to-pre-commit-config-yaml-if-pre-commit-ci-yaml-is-found' into 'main'

Resolve "Pre-commit config should fallback to .pre-commit-config.yaml if .pre-commit-ci.yaml is found"

Closes #3

See merge request to-be-continuous/pre-commit!6
parents 1b50ae05 45033829
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ It uses the following variable:
| `pre-commit-disabled` / `PRE_COMMIT_DISABLED` | Disable pre-commit run | `false` |
| `pre-commit-skip` / `PRE_COMMIT_SKIP` | pre-commit `SKIP` environment variable (see https://pre-commit.com/#temporarily-disabling-hooks) | `no-commit-to-branch` |
| `pre-commit-args` / `PRE_COMMIT_ARGS` | Additionnal arguments for the `pre-commit run` command | `` |
| `pre-commit-file` / `PRE_COMMIT_FILE` | pre-commit config file to use for the `pre-commit run` command | `.pre-commit-ci.yaml` |


### Secrets management
+6 −0
Original line number Diff line number Diff line
@@ -30,6 +30,12 @@
          "description": "pre-commit `SKIP` environment variable that allows to disable some hooks (see https://pre-commit.com/#temporarily-disabling-hooks)",
          "default": "no-commit-to-branch",
          "advanced": true
        },
        {
          "name": "PRE_COMMIT_FILE",
          "description": "pre-commit config file to use for the `pre-commit run` command",
          "default": ".pre-commit-ci.yaml",
          "advanced": true
        }
      ]
    }
+15 −6
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@ spec:
    pre-commit-skip:
      description: "pre-commit `SKIP` environment variable that allows to disable some hooks (see https://pre-commit.com/#temporarily-disabling-hooks)"
      default: 'no-commit-to-branch'
    pre-commit-file:
      description: "pre-commit config file to use for the `pre-commit run` command"
      default: '.pre-commit-ci.yaml'
    pre-commit-disabled:
      description: Disable pre-commit run
      type: boolean
@@ -83,6 +86,7 @@ variables:
  PRE_COMMIT_ARGS: $[[ inputs.pre-commit-args ]]
  PRE_COMMIT_SKIP: $[[ inputs.pre-commit-skip ]]
  PRE_COMMIT_DISABLED: $[[ inputs.pre-commit-disabled ]]
  PRE_COMMIT_FILE: $[[ inputs.pre-commit-file ]]

  # default production ref name (pattern)
  PROD_REF: '/^(master|main)$/'
@@ -333,15 +337,20 @@ stages:
  function pre_commit_setup() {
    log_info "Performing pre-commit setup..."
    # maybe install default hooks
    if [[ -e .pre-commit-ci.yaml ]]
    if [[ -n "${PRE_COMMIT_FILE}" ]]
    then
      log_info "file \\e[32m.pre-commit-ci.yaml\\e[0m found: use"
      fail "PRE_COMMIT_FILE can't be set to null value"
    fi

    if [[ -e "${PRE_COMMIT_FILE}" ]]
    then
      log_info "file \\e[32m${PRE_COMMIT_FILE}\\e[0m found: use"
    else
      log_info "file \\e[32m.pre-commit-ci.yaml\\e[0m not found: initializing default config"
      log_info "file \\e[32m${PRE_COMMIT_FILE}\\e[0m not found: initializing default config"
      # Would love to not have an hardcoded config here but it is not possible
      # to use external ressources from included components (yet?).
      # see https://stackoverflow.com/questions/77801510/how-to-access-other-files-in-a-gitlab-ci-cd-component-when-including-it
      cat <<EOF > .pre-commit-ci.yaml
      cat <<EOF > "${PRE_COMMIT_FILE}"
  repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: main
@@ -366,7 +375,7 @@ stages:
      log_info "\\e[32mpre-commit\\e[0m not found in image \\e[33;1m${PRE_COMMIT_IMAGE}\\e[0m, initializing..."
      apk add --no-cache git
      pip install pre-commit
      pre-commit install-hooks -c .pre-commit-ci.yaml
      pre-commit install-hooks -c "${PRE_COMMIT_FILE}"
    fi
  }

@@ -382,7 +391,7 @@ stages:
      _scope_opts="--all-files"
    fi
    # shellcheck disable=SC2086
    SKIP=${PRE_COMMIT_SKIP} pre-commit run ${_scope_opts} --config .pre-commit-ci.yaml $PRE_COMMIT_ARGS
    SKIP=${PRE_COMMIT_SKIP} pre-commit run ${_scope_opts} --config "${PRE_COMMIT_FILE}" $PRE_COMMIT_ARGS
    log_info "... done"
  }