roc/.github/workflows/ci_manager.yml
2023-11-25 19:22:14 +01:00

50 lines
1.4 KiB
YAML

on:
pull_request:
name: CI manager
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check-changes:
runs-on: ubuntu-22.04
outputs:
full_tests: ${{ steps.filter.outputs.full_tests }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check for only .md changes
id: filter
run: |
if git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -qvE '(\.md$)'; then
echo "::set-output name=full_tests::true"
else
echo "::set-output name=full_tests::false"
fi
start-nix-linux-x86-64-tests:
needs: check-changes
if: needs.check-changes.full_tests == 'true'
uses: ./.github/workflows/nix_linux_x86_64.yml
start-nix-macos-apple-silicon-tests:
needs: check-changes
if: needs.check-changes.full_tests == 'true'
uses: ./.github/workflows/nix_macos_apple_silicon.yml
finish-full:
runs-on: ubuntu-22.04
needs: [start-nix-linux-x86-64-tests, start-nix-macos-apple-silicon-tests]
steps:
- run: echo "all jobs succeeded!"
finish-basic:
runs-on: ubuntu-22.04
needs: [check-changes]
if: needs.check-changes.full_tests == 'false'
steps:
- run: echo "all jobs succeeded!"