diff --git a/.github/ci.el b/.github/ci.el new file mode 100644 index 000000000..38449e719 --- /dev/null +++ b/.github/ci.el @@ -0,0 +1,35 @@ +;;; ci.el -*- lexical-binding: t; no-byte-compile: t; -*- +;;; Commentary: +;;; Code: + +;;; Types +(add-to-list 'doom-cli-commit-types 'module) +(add-to-list 'doom-cli-commit-scopeless-types 'module) + + +;;; Scopes +(add-to-list 'doom-cli-commit-scopes "cli") +(add-to-list 'doom-cli-commit-scopes "lib") +(add-to-list 'doom-cli-commit-scopes "docs") +(add-to-list 'doom-cli-commit-scopes #'ci-module-scope) +(add-to-list 'doom-cli-commit-scopes #'ci-docs-scope) + + +;;; Helpers +(cl-defun ci-module-scope (scope (&key type)) + "Only allow :CATEGORY or MODULE scopes if they actually exist." + (seq-find (doom-rpartial + #'doom-glob (if (string-prefix-p ":" scope) + (format "%s" (substring scope 1)) + (format "*/%s" scope))) + doom-modules-dirs)) + +(cl-defun ci-docs-scope (scope (&key type)) + "Allow any filename in docs/* as a scope for docs commits." + (when (eq type 'docs) + (member scope + (cons "install" + (mapcar #'file-name-base + (doom-glob doom-docs-dir "*.org")))))) + +;;; ci.el ends here diff --git a/.github/workflows/lint-commits.yml b/.github/workflows/lint-commits.yml new file mode 100644 index 000000000..3a4a2df0d --- /dev/null +++ b/.github/workflows/lint-commits.yml @@ -0,0 +1,5 @@ +name: Lint commits +on: [push, pull_request] +jobs: + lint-commits: + uses: doomemacs/ci/.github/workflows/lint-commits.yml@legacy diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index db3bb552f..000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Commit linter -on: - pull_request: -jobs: - lint-commits: - timeout-minutes: 10 - runs-on: ubuntu-latest - steps: - - uses: styfle/cancel-workflow-action@0.9.1 - with: - access_token: ${{ github.token }} - - uses: purcell/setup-emacs@master - with: - version: 27.2 - - uses: actions/checkout@v2.3.1 - with: - fetch-depth: 0 - - run: bin/doom ci lint-commits ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}