Skip to content

[CI/CD;DevEx]: Scope sample and source-change workflows to skip unnecessary jobs #170

[CI/CD;DevEx]: Scope sample and source-change workflows to skip unnecessary jobs

[CI/CD;DevEx]: Scope sample and source-change workflows to skip unnecessary jobs #170

name: TypeScript Axios Client (Echo API)
on:
pull_request:
# Determines whether this workflow fires at all. Keep in sync with all_samples: in the setup job below.
paths:
- samples/client/echo_api/typescript-axios/**
- .github/workflows/samples-typescript-axios-echo-api.yaml
jobs:
setup:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.filter.outputs.matrix }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- id: filter
uses: ./.github/actions/compute-matrix
with:
# List of sample directories to consider building (one per line).
# Action inputs don't support arrays, so this is a newline-delimited string parsed in the action script.
# To add a new sample: add it here AND add a matching entry to the paths: trigger above.
all_samples: |
samples/client/echo_api/typescript-axios/test
16
18
20
build:
name: Test TypeScript Axios client
needs: setup
if: ${{ needs.setup.outputs.matrix != '[]' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup.outputs.matrix) }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node-version }}
- name: Run echo server
run: |
git clone https://github.com/wing328/http-echo-server -b openapi-generator-test-server
(cd http-echo-server && git checkout 15a684c41d4de692878636f47fcc1670af309a0f && npm install && npm start &)
- name: Install
working-directory: ${{ matrix.sample }}
run: |
npm run preinstall
npm i
- name: Test
working-directory: ${{ matrix.sample }}
run: npm test