mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-22 08:42:32 -05:00
93c6a9a652
Inspired by https://github.com/go-gitea/gitea/pull/24530#issuecomment-1558815301 This PR use a file filter action to do different CI jobs according changed files types. All types are defined in `.github/file-filters.yml`. Now there are 4 types, `docs`, `backend`, `frontend` and `build`. Then if a PR only changed docs files, those CI jobs which passed the conditions will run, and other types are also like this. --------- Co-authored-by: silverwind <me@silverwind.io>
32 lines
944 B
YAML
32 lines
944 B
YAML
name: files changed
|
|
|
|
on:
|
|
workflow_call:
|
|
outputs:
|
|
docs:
|
|
description: "whether docs files changed"
|
|
value: ${{ jobs.files-changed.outputs.docs }}
|
|
backend:
|
|
description: "whether backend files changed"
|
|
value: ${{ jobs.files-changed.outputs.backend }}
|
|
frontend:
|
|
description: "whether frontend files changed"
|
|
value: ${{ jobs.files-changed.outputs.frontend }}
|
|
|
|
jobs:
|
|
files-changed:
|
|
name: detect which files changed
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 3
|
|
# Map a step output to a job output
|
|
outputs:
|
|
docs: ${{ steps.changes.outputs.docs }}
|
|
backend: ${{ steps.changes.outputs.backend }}
|
|
frontend: ${{ steps.changes.outputs.frontend }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Check for backend file changes
|
|
uses: dorny/paths-filter@v2
|
|
id: changes
|
|
with:
|
|
filters: .github/file-filters.yml
|