Skip to content

Commit

Permalink
feat: only run CI jobs if features were modified (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
phorcys420 authored Aug 11, 2024
1 parent 21ddcec commit 9c546e6
Showing 1 changed file with 36 additions and 20 deletions.
56 changes: 36 additions & 20 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,45 @@ on:
workflow_dispatch:

jobs:
changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
# Expose matched filters as job 'features' output variable
features: ${{ steps.filter.outputs.changes }}
steps:
- uses: actions/checkout@v4

- id: autogenerate-filter
run: |
echo "filter<<EOF" >> "$GITHUB_OUTPUT"
find src -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | xargs -I %s -- echo '%s:
- src/%s/**
- test/%s/**' >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- uses: dorny/paths-filter@v3
id: filter
with:
filters: ${{ steps.autogenerate-filter.outputs.filter }}

test-autogenerated:
needs: changes
if: needs.changes.outputs.features != '[]' # Empty array
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
features:
- android-sdk
- burp-suite
- coder
- cutter
- ghidra
- lib-common
- lib-github
features: ${{ fromJSON(needs.changes.outputs.features) }}
baseImage:
- debian:latest
- ubuntu:latest
- mcr.microsoft.com/devcontainers/base:ubuntu
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
Expand All @@ -34,21 +54,15 @@ jobs:
run: devcontainer features test --skip-scenarios -f ${{ matrix.features }} -i ${{ matrix.baseImage }} .

test-scenarios:
needs: changes
if: needs.changes.outputs.features != '[]' # Empty array
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
features:
- android-sdk
- burp-suite
- coder
- coder
- cutter
- ghidra
- lib-common
- lib-github
features: ${{ fromJSON(needs.changes.outputs.features) }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
Expand All @@ -57,10 +71,12 @@ jobs:
run: devcontainer features test -f ${{ matrix.features }} --skip-autogenerated --skip-duplicated .

test-global:
needs: changes
if: needs.changes.outputs.features != '[]' # Empty array
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
Expand Down

0 comments on commit 9c546e6

Please sign in to comment.