From 5a8859f6c4708f76656647ae8bff88e10e767437 Mon Sep 17 00:00:00 2001 From: Iisakki Rotko Date: Fri, 13 Dec 2024 15:36:41 +0100 Subject: [PATCH] ci: streamline action flow This way all the actions run under unit-tests, so they can be viewed in one action run. We also only build the package once For release, we require tests to pass, but still build the wheel again to upload --- .github/workflows/codequality.yaml | 10 ++-------- .github/workflows/installation.yml | 13 ++++++------- .github/workflows/release.yaml | 9 ++++++++- .github/workflows/unittest.yml | 16 +++++++++++++--- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/.github/workflows/codequality.yaml b/.github/workflows/codequality.yaml index dfa3828..8d0dd21 100644 --- a/.github/workflows/codequality.yaml +++ b/.github/workflows/codequality.yaml @@ -1,16 +1,10 @@ name: Code quality - on: - push: - branches: - - master - tags: - - v* - pull_request: + workflow_call: workflow_dispatch: jobs: - build: + code-quality: runs-on: ubuntu-20.04 strategy: fail-fast: false diff --git a/.github/workflows/installation.yml b/.github/workflows/installation.yml index f612c01..d774d16 100644 --- a/.github/workflows/installation.yml +++ b/.github/workflows/installation.yml @@ -1,16 +1,11 @@ name: Test installation on: - push: - branches: - - master - tags: - - v* - pull_request: + workflow_call: workflow_dispatch: jobs: - build: + test-installation: runs-on: ubuntu-latest steps: @@ -27,3 +22,7 @@ jobs: run: pip install dist/*.whl - name: Test import run: python -c "import react_ipywidgets; import reacton" + - uses: actions/upload-artifact@v4 + with: + name: reacton-build-${{ github.run_number }} + path: ./dist diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c83241f..8db936f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -6,7 +6,14 @@ on: - "*" jobs: - build: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/workflows/unittest.yml + + release: + needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 0a86b6a..402302f 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -4,13 +4,18 @@ on: push: branches: - master - tags: - - v* pull_request: workflow_dispatch: jobs: build: + uses: ./.github/workflows/installation.yml + + code-quality: + uses: ./.github/workflows/codequality.yaml + + unit-test: + needs: [build, code-quality] runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -23,7 +28,12 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + - uses: actions/download-artifact@v4 + with: + name: reacton-build-${{ github.run_number }} + path: ./dist - name: Install - run: pip install ".[dev]" "black<23" + run: | + pip install `echo dist/*.whl`[dev] "black<23" - name: test run: pytest --cov=reacton reacton