Build Package #1662
This file contains 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@v2 | |
- 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: | |
- centos,7 | |
- oraclelinux,8 | |
- oraclelinux,7 | |
- almalinux,8 | |
- almalinux,9 | |
POSTGRES_VERSION: | |
- 11 | |
- 12 | |
- 13 | |
- 14 | |
- 15 | |
- 16 | |
include: | |
- TARGET_PLATFORM: debian,buster | |
- TARGET_PLATFORM: debian,bullseye | |
- TARGET_PLATFORM: debian,bookworm | |
# removing temporarily since postgres 16 packages does not exist for ubuntu bionic | |
# - TARGET_PLATFORM: ubuntu,bionic | |
- TARGET_PLATFORM: ubuntu,focal | |
- TARGET_PLATFORM: ubuntu,jammy | |
- TARGET_PLATFORM: ubuntu,kinetic | |
- TARGET_PLATFORM: pgxn | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Install package dependencies | |
run: sudo apt-get update && sudo apt-get install 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.27 --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}}" | |
- name: Push images | |
run: | | |
export CURRENT_BRANCH=${GITHUB_REF##*/} | |
./ci/push_images | |
env: | |
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }} | |
POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }} |