From c776f9963873d3c88872c463638269e35625b1e7 Mon Sep 17 00:00:00 2001 From: Mike Alfare Date: Thu, 30 Jan 2025 20:15:28 -0500 Subject: [PATCH] [Backport 1.9.latest] Combine the build and check build jobs into one job (#986) * combine the build and check build jobs into one job, benefiting from the matrix and avoiding the need to upload and download the artifacts * install postgresql for macos build checks to get pg_config --- .github/workflows/main.yml | 105 +++++++++---------------------------- 1 file changed, 26 insertions(+), 79 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2aa547109..d6c8c70aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -43,7 +43,7 @@ jobs: steps: - name: Check out the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false @@ -78,7 +78,7 @@ jobs: steps: - name: Check out the repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false @@ -104,98 +104,45 @@ jobs: run: | echo "date=$(date +'%Y-%m-%dT%H_%M_%S')" >> $GITHUB_OUTPUT - build: - name: build packages - - runs-on: ubuntu-latest - - outputs: - is_alpha: ${{ steps.check-is-alpha.outputs.is_alpha }} - - steps: - - name: Check out the repository - uses: actions/checkout@v3 - with: - persist-credentials: false - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.9' - - - name: Install python dependencies - run: | - python -m pip install --user --upgrade pip - python -m pip install --upgrade setuptools wheel twine check-wheel-contents - python -m pip --version - - - name: Build distributions - run: ./scripts/build-dist.sh - - - name: Show distributions - run: ls -lh dist/ - - - name: Check distribution descriptions - run: | - twine check dist/* - - - name: Check wheel contents - run: | - check-wheel-contents dist/*.whl --ignore W007,W008 - - - name: Check if this is an alpha version - id: check-is-alpha - run: | - export is_alpha=0 - if [[ "$(ls -lh dist/)" == *"a1"* ]]; then export is_alpha=1; fi - echo "is_alpha=$is_alpha" >> $GITHUB_OUTPUT - test-build: name: verify packages / python ${{ matrix.python-version }} / ${{ matrix.os }} - - if: needs.build.outputs.is_alpha == 0 - - needs: build - runs-on: ${{ matrix.os }} - strategy: fail-fast: false matrix: os: [ubuntu-22.04, macos-14, windows-2022] python-version: ['3.9', '3.10', '3.11'] + dist-type: ["whl", "gz"] exclude: # psycopg2-binary doesn't have a precompiled wheel for python 3.9 for mac - os: macos-14 python-version: '3.9' - steps: - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 with: - python-version: ${{ matrix.python-version }} - + persist-credentials: false + - uses: actions/setup-python@v4 + with: + python-version: '3.9' - name: Install python dependencies run: | - python -m pip install --user --upgrade pip - python -m pip install --upgrade wheel + python -m pip install --user --upgrade pip + python -m pip install --upgrade setuptools wheel twine check-wheel-contents python -m pip --version - - - name: Show distributions - run: ls -lh dist/ - - - name: Install wheel distributions - run: | - find ./dist/*.whl -maxdepth 1 -type f | xargs python -m pip install --force-reinstall --find-links=dist/ - - - name: Check wheel distributions + - if: matrix.os == 'macos-14' + run: brew install postgresql@14 + - run: ./scripts/build-dist.sh + - run: ls -lh dist/ + - run: twine check dist/* + - run: check-wheel-contents dist/*.whl --ignore W007,W008 + - id: check-is-alpha run: | - python -c "import dbt.adapters.redshift" - - - name: Install source distributions - run: | - find ./dist/*.gz -maxdepth 1 -type f | xargs python -m pip install --force-reinstall --find-links=dist/ - - - name: Check source distributions - run: | - python -c "import dbt.adapters.redshift" + export is_alpha=0 + if [[ "$(ls -lh dist/)" == *"a1"* ]]; then export is_alpha=1; fi + echo "is_alpha=$is_alpha" >> $GITHUB_OUTPUT + - name: Install ${{ matrix.dist-type }} distributions + if: ${{ steps.check-is-alpha.outputs.is_alpha == 0 }} + run: find ./dist/*.${{ matrix.dist-type }} -maxdepth 1 -type f | xargs python -m pip install --force-reinstall --find-links=dist/ + - name: Check ${{ matrix.dist-type }} distributions + if: ${{ steps.check-is-alpha.outputs.is_alpha == 0 }} + run: python -c "import dbt.adapters.redshift"