build-pg-focal: add an install smoke test for the built package set #2150
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Package | |
| env: | |
| GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
| PACKAGING_SECRET_KEY: "${{ secrets.PACKAGING_SECRET_KEY }}" | |
| PACKAGE_ENCRYPTION_KEY: "${{ secrets.PACKAGE_ENCRYPTION_KEY }}" | |
| PACKAGING_PASSPHRASE: "${{ secrets.PACKAGING_PASSPHRASE }}" | |
| DOCKERHUB_PASSWORD: "${{ secrets.DOCKERHUB_PASSWORD }}" | |
| DOCKERHUB_USER_NAME: "${{ secrets.DOCKERHUB_USER_NAME }}" | |
| ACR_PASSWORD: "${{ secrets.ACR_PASSWORD }}" | |
| ACR_SERVICE_PRINCIPAL_ID: "${{ secrets.ACR_SERVICE_PRINCIPAL_ID }}" | |
| CURRENT_BRANCH: "${GITHUB_REF##*/}" | |
| TEST: false | |
| on: | |
| push: | |
| branches: "**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check_docker_files_integrity: | |
| name: Check if docker files are compliant with templates | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Update and check dockerfiles | |
| run: | | |
| ./update_dockerfiles | |
| git add --intent-to-add dockerfiles | |
| git diff --exit-code dockerfiles | |
| build_package: | |
| name: Build package | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| TARGET_PLATFORM: | |
| - oraclelinux,8 | |
| - almalinux,8 | |
| - almalinux,9 | |
| POSTGRES_VERSION: | |
| - 14 | |
| - 15 | |
| - 16 | |
| - 17 | |
| - 18 | |
| include: | |
| - TARGET_PLATFORM: debian,bullseye | |
| - TARGET_PLATFORM: debian,bookworm | |
| - TARGET_PLATFORM: debian,trixie | |
| - TARGET_PLATFORM: ubuntu,jammy | |
| - TARGET_PLATFORM: ubuntu,noble | |
| - TARGET_PLATFORM: pgxn | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Generate GitHub App token | |
| id: app-token | |
| uses: actions/create-github-app-token@v3 | |
| with: | |
| app-id: ${{ vars.GH_APP_ID }} | |
| private-key: ${{ secrets.GH_APP_KEY }} | |
| owner: citusdata | |
| - name: Export App token to environment | |
| run: | | |
| echo "GH_TOKEN=${{ steps.app-token.outputs.token }}" >> "$GITHUB_ENV" | |
| echo "GITHUB_TOKEN=${{ steps.app-token.outputs.token }}" >> "$GITHUB_ENV" | |
| - name: Install package dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libcurl4-openssl-dev libssl-dev python3-testresources | |
| - name: Install wheel for el/8 | |
| if: matrix.TARGET_PLATFORM == 'centos,8' | |
| run: python -m pip install wheel | |
| - name: Build image for the target platform | |
| run: | | |
| git checkout -- dockerfiles | |
| ./update_image | |
| env: | |
| TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }} | |
| POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }} | |
| - name: Clone tools repo for test | |
| run: git clone -b v0.8.36 --depth=1 https://github.com/citusdata/tools.git tools | |
| - name: Execute packaging tests | |
| run: | | |
| python -m pip install -r tools/packaging_automation/requirements.txt | |
| python -m pytest -q tools/packaging_automation/tests/test_citus_package.py -k 'test_build_packages' | |
| env: | |
| PACKAGING_IMAGE_PLATFORM: "${{matrix.TARGET_PLATFORM}}" | |
| POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }} | |
| - name: Push images | |
| run: | | |
| export CURRENT_BRANCH=${GITHUB_REF##*/} | |
| ./ci/push_images | |
| env: | |
| TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }} | |
| POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }} |