From d9195060768ea02bd020f506b9dbc9431f09d420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrkan=20=C4=B0ndibay?= Date: Tue, 31 Jan 2023 13:59:09 +0300 Subject: [PATCH] Fixes validate Output phase of packaging pipeline (#6678) Pyenv is installed in our container images but I found out that pyenv is not being activated since it is activated from ~/bashrc script and in GitHub Actions (GHA) this script is not being executed Since pyenv is not activated, default python versions comes from docker images is being used and in this case we get errors for python version 3.11. Additionally, $HOME directory is /github/home for containers executed under GHA and our pyenv installation is under /root directory which is normally home directory for our packaging containers This PR activates usage of pyenv and additionally uses pyenv virtualenv feature to execute validate_output function in isolation --------- Co-authored-by: Onur Tirtir --- .github/packaging/validate_build_output.sh | 16 +++++++++++++++- .github/workflows/packaging-test-pipelines.yml | 11 ++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/packaging/validate_build_output.sh b/.github/packaging/validate_build_output.sh index 4ae588574..200b1a188 100755 --- a/.github/packaging/validate_build_output.sh +++ b/.github/packaging/validate_build_output.sh @@ -1,6 +1,20 @@ package_type=${1} -git clone -b v0.8.23 --depth=1 https://github.com/citusdata/tools.git tools + +# Since $HOME is set in GH_Actions as /github/home, pyenv fails to create virtualenvs. +# For this script, we set $HOME to /root and then set it back to /github/home. +GITHUB_HOME="${HOME}" +export HOME="/root" + +eval "$(pyenv init -)" +pyenv versions +pyenv virtualenv ${PACKAGING_PYTHON_VERSION} packaging_env +pyenv activate packaging_env + +git clone -b v0.8.24 --depth=1 https://github.com/citusdata/tools.git tools python3 -m pip install -r tools/packaging_automation/requirements.txt python3 -m tools.packaging_automation.validate_build_output --output_file output.log \ --ignore_file .github/packaging/packaging_ignore.yml \ --package_type ${package_type} +pyenv deactivate +# Set $HOME back to /github/home +export HOME=${GITHUB_HOME} diff --git a/.github/workflows/packaging-test-pipelines.yml b/.github/workflows/packaging-test-pipelines.yml index 0233f2c1a..ae8d9d725 100644 --- a/.github/workflows/packaging-test-pipelines.yml +++ b/.github/workflows/packaging-test-pipelines.yml @@ -49,14 +49,17 @@ jobs: container: image: citus/packaging:${{ matrix.packaging_docker_image }}-pg${{ matrix.POSTGRES_VERSION }} + options: --user root steps: - name: Checkout repository uses: actions/checkout@v3 - - name: Add Postgres installation directory into PATH for rpm based distros + - name: Set Postgres and python parameters for rpm based distros run: | echo "/usr/pgsql-${{ matrix.POSTGRES_VERSION }}/bin" >> $GITHUB_PATH + echo "/root/.pyenv/bin:$PATH" >> $GITHUB_PATH + echo "PACKAGING_PYTHON_VERSION=3.8.16" >> $GITHUB_ENV - name: Configure run: | @@ -115,14 +118,17 @@ jobs: container: image: citus/packaging:${{ matrix.packaging_docker_image }} + options: --user root steps: - name: Checkout repository uses: actions/checkout@v3 - - name: Set pg_config path to related Postgres version + - name: Set pg_config path and python parameters for deb based distros run: | echo "PG_CONFIG=/usr/lib/postgresql/${{ matrix.POSTGRES_VERSION }}/bin/pg_config" >> $GITHUB_ENV + echo "/root/.pyenv/bin:$PATH" >> $GITHUB_PATH + echo "PACKAGING_PYTHON_VERSION=3.8.16" >> $GITHUB_ENV - name: Configure run: | @@ -154,5 +160,4 @@ jobs: apt install python3-dev python3-pip -y sudo apt-get purge -y python3-yaml python3 -m pip install --upgrade pip setuptools==57.5.0 - ./.github/packaging/validate_build_output.sh "deb"