From e5060fc636ffb0b5e51ca04cc07ed54c315e8d44 Mon Sep 17 00:00:00 2001 From: Tom Vo Date: Mon, 14 Aug 2023 10:10:19 -0700 Subject: [PATCH] Fix build workflow skipping env update --- .github/workflows/build_workflow.yml | 54 +++++++++++++--------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build_workflow.yml b/.github/workflows/build_workflow.yml index fa8f6038..9d388e04 100644 --- a/.github/workflows/build_workflow.yml +++ b/.github/workflows/build_workflow.yml @@ -14,27 +14,35 @@ env: PATHS_IGNORE: '["**/README.rst", "**/docs/**", "**/ISSUE_TEMPLATE/**", "**/pull_request_template.md", "**/.vscode/**"]' jobs: - pre-commit-hooks: + skip-duplicate-actions: runs-on: ubuntu-latest - timeout-minutes: 3 + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + paths_result: ${{ steps.skip_check.outputs.paths_result }} steps: - id: skip_check - uses: fkirc/skip-duplicate-actions@master + uses: fkirc/skip-duplicate-actions@v5 with: cancel_others: ${{ env.CANCEL_OTHERS }} paths_ignore: ${{ env.PATHS_IGNORE }} - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} + pre-commit-hooks: + needs: skip-duplicate-actions + if: needs.skip_check.outputs.should_skip != 'true' + runs-on: ubuntu-latest + timeout-minutes: 3 + steps: + - if: ${{ steps.skip_check.outputs.should_skip != 'true' }} name: Checkout Code Repository uses: actions/checkout@v3 - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} + - if: ${{ steps.skip_check.outputs.should_skip != 'true' }} name: Set up Python 3.10 uses: actions/setup-python@v3 with: python-version: "3.10" - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} + - if: ${{ steps.skip_check.outputs.should_skip != 'true' }} # Run all pre-commit hooks on all the files. # Getting only staged files can be tricky in case a new PR is opened # since the action is run on a branch in detached head state @@ -42,6 +50,8 @@ jobs: uses: pre-commit/action@v3.0.0 build: + needs: skip-duplicate-actions + if: needs.skip_check.outputs.should_skip != 'true' name: Build (Python ${{ matrix.python-version }}) runs-on: "ubuntu-latest" timeout-minutes: 10 @@ -52,18 +62,9 @@ jobs: matrix: python-version: ["3.9", "3.10", "3.11"] steps: - - id: skip_check - uses: fkirc/skip-duplicate-actions@master - with: - cancel_others: ${{ env.CANCEL_OTHERS }} - paths_ignore: ${{ env.PATHS_IGNORE }} - do_not_skip: '["push", "workflow_dispatch"]' - - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - name: Set up Conda Environment + - name: Set up Conda Environment uses: conda-incubator/setup-miniconda@v2 with: miniforge-variant: Mambaforge @@ -77,14 +78,12 @@ jobs: # Refresh the cache every 24 hours to avoid inconsistencies of package versions # between the CI pipeline and local installations. - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - id: get-date + - id: get-date name: Get Date run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT shell: bash - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - id: cache + - id: cache name: Cache Conda env uses: actions/cache@v3 with: @@ -96,28 +95,23 @@ jobs: # Increase this value to reset cache if conda-env/ci.yml has not changed in the workflow CACHE_NUMBER: 0 - - if: | - steps.skip_check.outputs.should_skip == 'false' && - steps.cache.outputs.cache-hit == 'false' + - if: steps.cache.outputs.cache-hit != 'true' name: Update environment run: | mamba env update -n xcdat_ci -f conda-env/ci.yml # Make sure the Python version in the env matches the current matrix version. mamba install -c conda-forge python=${{ matrix.python-version }} - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - name: Install xcdat + - name: Install xcdat # Source: https://github.com/conda/conda-build/issues/4251#issuecomment-1053460542 run: | python -m pip install --no-build-isolation --no-deps -e . - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - name: Run Tests + - name: Run Tests run: | pytest - - if: ${{ steps.skip_check.outputs.should_skip == 'false' }} - name: Upload Coverage Report + - name: Upload Coverage Report uses: codecov/codecov-action@v3 with: file: "tests_coverage_reports/coverage.xml"