From 5d87166c07115f59c3abeab2521fcbae3ad13624 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 4 Feb 2025 22:18:30 +0100 Subject: [PATCH] gha: standalone import-check (#48873) --- .github/workflows/ci.yaml | 4 +++ .github/workflows/import-check.yaml | 49 +++++++++++++++++++++++++++++ .github/workflows/valid-style.yml | 43 ------------------------- 3 files changed, 53 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/import-check.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a7ceb1bd8e4..74ad0bd4d25 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -81,6 +81,10 @@ jobs: with: with_coverage: ${{ needs.changes.outputs.core }} + import-check: + needs: [ changes ] + uses: ./.github/workflows/import-check.yaml + all-prechecks: needs: [ prechecks ] if: ${{ always() }} diff --git a/.github/workflows/import-check.yaml b/.github/workflows/import-check.yaml new file mode 100644 index 00000000000..3b43f7e1e3d --- /dev/null +++ b/.github/workflows/import-check.yaml @@ -0,0 +1,49 @@ +name: import-check + +on: + workflow_call: + +jobs: + # Check we don't make the situation with circular imports worse + import-check: + runs-on: ubuntu-latest + steps: + - uses: julia-actions/setup-julia@v2 + with: + version: '1.10' + - uses: julia-actions/cache@v2 + + # PR: use the base of the PR as the old commit + - name: Checkout PR base commit + if: github.event_name == 'pull_request' + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + ref: ${{ github.event.pull_request.base.sha }} + path: old + # not a PR: use the previous commit as the old commit + - name: Checkout previous commit + if: github.event_name != 'pull_request' + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + fetch-depth: 2 + path: old + - name: Checkout previous commit + if: github.event_name != 'pull_request' + run: git -C old reset --hard HEAD^ + + - name: Checkout new commit + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + path: new + - name: Install circular import checker + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + repository: haampie/circular-import-fighter + ref: 38c5473f619493d060d813c72c80eac86b3d2aeb + path: circular-import-fighter + - name: Install dependencies + working-directory: circular-import-fighter + run: make -j dependencies + - name: Circular import check + working-directory: circular-import-fighter + run: make -j compare "SPACK_ROOT=../old ../new" diff --git a/.github/workflows/valid-style.yml b/.github/workflows/valid-style.yml index 34c2c54e08f..4553750e8cd 100644 --- a/.github/workflows/valid-style.yml +++ b/.github/workflows/valid-style.yml @@ -86,49 +86,6 @@ jobs: spack -d bootstrap now --dev spack -d style -t black spack unit-test -V - # Check we don't make the situation with circular imports worse - import-check: - runs-on: ubuntu-latest - steps: - - uses: julia-actions/setup-julia@v2 - with: - version: '1.10' - - uses: julia-actions/cache@v2 - - # PR: use the base of the PR as the old commit - - name: Checkout PR base commit - if: github.event_name == 'pull_request' - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - ref: ${{ github.event.pull_request.base.sha }} - path: old - # not a PR: use the previous commit as the old commit - - name: Checkout previous commit - if: github.event_name != 'pull_request' - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - fetch-depth: 2 - path: old - - name: Checkout previous commit - if: github.event_name != 'pull_request' - run: git -C old reset --hard HEAD^ - - - name: Checkout new commit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - path: new - - name: Install circular import checker - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - repository: haampie/circular-import-fighter - ref: 38c5473f619493d060d813c72c80eac86b3d2aeb - path: circular-import-fighter - - name: Install dependencies - working-directory: circular-import-fighter - run: make -j dependencies - - name: Circular import check - working-directory: circular-import-fighter - run: make -j compare "SPACK_ROOT=../old ../new" # Further style checks from pylint pylint: