+++ /dev/null
-docs: &docs
- - "**/*.md"
- - "docs/**"
-
-backend: &backend
- - "**/*.go"
- - "**/*.tmpl"
- - "go.mod"
- - "go.sum"
-
-frontend: &frontend
- - "**/*.js"
- - "web_src/**"
- - "package.json"
- - "package-lock.json"
-name: files changed
+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 }}
+ value: ${{ jobs.detect.outputs.backend }}
frontend:
description: "whether frontend files changed"
- value: ${{ jobs.files-changed.outputs.frontend }}
+ value: ${{ jobs.detect.outputs.frontend }}
+ docs:
+ description: "whether docs files changed"
+ value: ${{ jobs.detect.outputs.docs }}
+ actions:
+ description: "whether actions files changed"
+ value: ${{ jobs.detect.outputs.actions }}
jobs:
- files-changed:
+ detect:
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 }}
+ docs: ${{ steps.changes.outputs.docs }}
+ actions: ${{ steps.changes.outputs.actions }}
steps:
- uses: actions/checkout@v3
- - name: Check for backend file changes
- uses: dorny/paths-filter@v2
+ - uses: dorny/paths-filter@v2
id: changes
with:
- filters: .github/file-filters.yml
+ filters: |
+ backend:
+ - "**/*.go"
+ - "**/*.tmpl"
+ - "go.mod"
+ - "go.sum"
+
+ frontend:
+ - "**/*.js"
+ - "web_src/**"
+ - "package.json"
+ - "package-lock.json"
+
+ docs:
+ - "**/*.md"
+ - "docs/**"
+
+ actions:
+ - ".github/workflows/*"
+++ /dev/null
-name: compliance-docs
-
-on:
- pull_request:
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- files-changed:
- uses: ./.github/workflows/files-changed.yml
-
- compliance-docs:
- if: needs.files-changed.outputs.docs == 'true'
- needs: files-changed
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
- with:
- node-version: 20
- - run: make deps-frontend
- - run: make lint-md
- - run: make docs # test if build could succeed
- run: make lint-backend
env:
TAGS: bindata sqlite sqlite_unlock_notify
+
lint-go-windows:
if: needs.files-changed.outputs.backend == 'true'
needs: files-changed
TAGS: bindata sqlite sqlite_unlock_notify
GOOS: windows
GOARCH: amd64
+
lint-go-gogit:
if: needs.files-changed.outputs.backend == 'true'
needs: files-changed
- run: make lint-go
env:
TAGS: bindata gogit sqlite sqlite_unlock_notify
+
checks-backend:
if: needs.files-changed.outputs.backend == 'true'
needs: files-changed
check-latest: true
- run: make deps-backend deps-tools
- run: make --always-make checks-backend # ensure the "go-licenses" make target runs
+
frontend:
if: needs.files-changed.outputs.frontend == 'true'
needs: files-changed
- run: make deps-frontend
- run: make lint-frontend
- run: make checks-frontend
+
backend:
if: needs.files-changed.outputs.backend == 'true'
needs: files-changed
env:
GOOS: linux
GOARCH: 386
+
+ docs:
+ if: needs.files-changed.outputs.docs == 'true'
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 20
+ - run: make deps-frontend
+ - run: make lint-md
+ - run: make docs # test if build could succeed
+
+ actions:
+ if: needs.files-changed.outputs.actions == 'true'
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-go@v4
+ - run: make lint-actions