mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-11-15 01:28:17 -07:00
ci: conditional execution of tests on file changes (#1448)
This commit is contained in:
parent
f0fe961373
commit
b45f12c617
@ -1,7 +1,7 @@
|
||||
name: Docs
|
||||
name: Documentation
|
||||
|
||||
on:
|
||||
# trigger deployment on every push to main branch
|
||||
# trigger deployment on push to master branch when changes to docs/**
|
||||
push:
|
||||
paths:
|
||||
- "docs/**"
|
||||
@ -11,7 +11,7 @@ on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
docs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
@ -44,7 +44,7 @@ jobs:
|
||||
|
||||
- name: Build VuePress site
|
||||
run: npm run build
|
||||
|
||||
|
||||
- name: Bundle CNAME with site dist
|
||||
run: cp CNAME .vuepress/dist
|
||||
|
2
.github/workflows/semantic-pr.yml
vendored
2
.github/workflows/semantic-pr.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Lint PR
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
|
84
.github/workflows/tests.yml
vendored
84
.github/workflows/tests.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Tests
|
||||
name: Test
|
||||
|
||||
on:
|
||||
push:
|
||||
@ -11,7 +11,45 @@ env:
|
||||
NUSHELL_VERSION: 0.73.0
|
||||
|
||||
jobs:
|
||||
detect-changes:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: read
|
||||
# Set job outputs to values from filter step
|
||||
outputs:
|
||||
documentation: ${{ steps.filter.outputs.documentation }}
|
||||
cli: ${{ steps.filter.outputs.cli }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: dorny/paths-filter@v2
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
documentation:
|
||||
- '.github/workflows/**'
|
||||
- 'docs/**'
|
||||
- '.tool-versions'
|
||||
cli:
|
||||
- '.github/workflows/**'
|
||||
- 'bin/**'
|
||||
- 'lib/**'
|
||||
- 'scripts/**'
|
||||
- 'test/**'
|
||||
- '.tool-versions'
|
||||
- 'asdf.elv'
|
||||
- 'asdf.fish'
|
||||
- 'asdf.nu'
|
||||
- 'asdf.sh'
|
||||
|
||||
ubuntu:
|
||||
needs: detect-changes
|
||||
# only run if
|
||||
# - changes to cli
|
||||
if: ${{ needs.detect-changes.outputs.cli == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@ -52,8 +90,12 @@ jobs:
|
||||
run: bats test
|
||||
env:
|
||||
GITHUB_API_TOKEN: ${{ github.token }}
|
||||
|
||||
|
||||
macos:
|
||||
needs: detect-changes
|
||||
# only run if
|
||||
# - changes to cli
|
||||
if: ${{ needs.detect-changes.outputs.cli == 'true' }}
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@ -73,3 +115,41 @@ jobs:
|
||||
run: bats test
|
||||
env:
|
||||
GITHUB_API_TOKEN: ${{ github.token }}
|
||||
|
||||
documentation-site:
|
||||
needs: detect-changes
|
||||
# only run if
|
||||
# - changes to documentation
|
||||
# - pull_request (workflows/docs.yml deploys on main branch)
|
||||
if: ${{ github.event_name == 'pull_request' && needs.detect-changes.outputs.documentation == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
# fetch all commits to get git log info for Vuepress
|
||||
fetch-depth: 0
|
||||
|
||||
# only run steps past here if changes to docs/** directory
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "18"
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v3
|
||||
id: npm-cache
|
||||
with:
|
||||
path: |
|
||||
docs/node_modules
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('docs/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||
working-directory: docs/
|
||||
run: npm install
|
||||
|
||||
- name: Check errors by biulding Documentation site
|
||||
working-directory: docs/
|
||||
run: npm run build
|
||||
|
Loading…
Reference in New Issue
Block a user