mirror of https://github.com/go-gitea/gitea
Use file filters action instead of Github's files filter (#24877)
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>pull/24481/head^2
parent
d7e669c371
commit
93c6a9a652
@ -0,0 +1,15 @@ |
|||||||
|
docs: &docs |
||||||
|
- "**/*.md" |
||||||
|
- "docs/**" |
||||||
|
|
||||||
|
backend: &backend |
||||||
|
- "**/*.go" |
||||||
|
- "**/*.tmpl" |
||||||
|
- "go.mod" |
||||||
|
- "go.sum" |
||||||
|
|
||||||
|
frontend: &frontend |
||||||
|
- "**/*.js" |
||||||
|
- "web_src/**" |
||||||
|
- "package.json" |
||||||
|
- "package-lock.json" |
@ -0,0 +1,32 @@ |
|||||||
|
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 |
@ -1,43 +0,0 @@ |
|||||||
name: compliance |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
paths: |
|
||||||
- "docs/**" |
|
||||||
- "*.md" |
|
||||||
|
|
||||||
jobs: |
|
||||||
compliance-docs: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
lint-backend: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
lint-go-windows: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
lint-go-gogit: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
checks-backend: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
frontend: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
backend: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
@ -1,38 +0,0 @@ |
|||||||
name: db-tests |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
paths: |
|
||||||
- "docs/**" |
|
||||||
- "*.md" |
|
||||||
|
|
||||||
jobs: |
|
||||||
test-pgsql: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
test-sqlite: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
test-unit: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
test-mysql5: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
test-mysql8: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
||||||
|
|
||||||
test-mssql: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
@ -1,13 +0,0 @@ |
|||||||
name: docker-dryrun |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
paths: |
|
||||||
- "docs/**" |
|
||||||
- "*.md" |
|
||||||
|
|
||||||
jobs: |
|
||||||
docker-dryrun: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
@ -1,13 +0,0 @@ |
|||||||
name: e2e-tests |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
paths: |
|
||||||
- "docs/**" |
|
||||||
- "*.md" |
|
||||||
|
|
||||||
jobs: |
|
||||||
test-e2e: |
|
||||||
runs-on: ubuntu-latest |
|
||||||
steps: |
|
||||||
- run: echo "No build required" |
|
Loading…
Reference in new issue