From a7c1552ad6c723a3d677a23e5f2ddd41e4888120 Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Fri, 7 Feb 2025 07:21:51 -0800 Subject: [PATCH 1/5] Build and workflow updates and fixes - Fix Plenum version format in the indy-node deb package. - Enable workflows on the `ubuntu-22.04` branch. - Set concurrency rules on PR and Push workflows. - Cancel in progress runs when stating a new one. - Ensure tests are running on latest version of Ubuntu, and with Python 3.10 (the default on Ubuntu 22.04). Signed-off-by: Wade Barnes --- .github/actions/getNewNodeVersion/action.yaml | 4 ++-- .github/workflows/PR.yaml | 7 ++++++- .github/workflows/Push.yaml | 5 +++++ .github/workflows/reuseable_test.yaml | 2 +- .github/workflows/tag.yaml | 4 ++-- build-scripts/ubuntu-2204/build-indy_node.sh | 7 ++++++- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/actions/getNewNodeVersion/action.yaml b/.github/actions/getNewNodeVersion/action.yaml index 44d6d4f4b..592bf2670 100644 --- a/.github/actions/getNewNodeVersion/action.yaml +++ b/.github/actions/getNewNodeVersion/action.yaml @@ -19,7 +19,7 @@ runs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' - name: Get Versions id: versions shell: bash @@ -35,4 +35,4 @@ runs: echo "nodeVersion=$nodeVersion" >> $GITHUB_OUTPUT echo "::group::DEBUG" echo "nodeVersion is set to $nodeVersion" - echo "::endgroup::" \ No newline at end of file + echo "::endgroup::" diff --git a/.github/workflows/PR.yaml b/.github/workflows/PR.yaml index 7277b1d0e..b9bb302db 100644 --- a/.github/workflows/PR.yaml +++ b/.github/workflows/PR.yaml @@ -7,9 +7,14 @@ on: branches: - main + - ubuntu-22.04 workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: workflow-setup: name: Initialize Workflow @@ -82,4 +87,4 @@ jobs: needs: [workflow-setup, indy_node_tests] if: ${{ needs.workflow-setup.outputs.testsNeeded == 'false' || success() }} steps: - - run: 'echo "Just a status Check (Always true, when executed) for branch protection rules(blocks merging while test are running and if tests fail)." ' \ No newline at end of file + - run: 'echo "Just a status Check (Always true, when executed) for branch protection rules(blocks merging while test are running and if tests fail)." ' diff --git a/.github/workflows/Push.yaml b/.github/workflows/Push.yaml index 59388f905..d3f1fdbe3 100644 --- a/.github/workflows/Push.yaml +++ b/.github/workflows/Push.yaml @@ -4,12 +4,17 @@ on: branches: - main - test-automation-integration + - ubuntu-22.04 paths: - '**.py' - '.github/**' - 'build-scripts/**' - 'bump_version.sh' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: workflow-setup: name: Initialize Workflow diff --git a/.github/workflows/reuseable_test.yaml b/.github/workflows/reuseable_test.yaml index 59fd34fd3..40ddd9e86 100644 --- a/.github/workflows/reuseable_test.yaml +++ b/.github/workflows/reuseable_test.yaml @@ -13,7 +13,7 @@ on: jobs: indy_node_tests: name: Sliced Module Tests - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest # Fix for scacap/action-surefire-report out of memory error: # - https://github.com/ScaCap/action-surefire-report/issues/17 env: diff --git a/.github/workflows/tag.yaml b/.github/workflows/tag.yaml index 5ddea355e..61ca1f994 100644 --- a/.github/workflows/tag.yaml +++ b/.github/workflows/tag.yaml @@ -33,7 +33,7 @@ jobs: bump_version: name: Bump Version Number needs: taginfos - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 @@ -41,7 +41,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' - name: Install deps for version change run: | diff --git a/build-scripts/ubuntu-2204/build-indy_node.sh b/build-scripts/ubuntu-2204/build-indy_node.sh index 4bc6a0b84..ba741b24f 100755 --- a/build-scripts/ubuntu-2204/build-indy_node.sh +++ b/build-scripts/ubuntu-2204/build-indy_node.sh @@ -16,7 +16,12 @@ cd "${TMP_DIR}/build-scripts/ubuntu-2204" ./prepare-package.sh "${TMP_DIR}" indy_node "${VERSION}" debian-packages echo "Fetching the indy-plenum version from setup.py and converting it to deb format ..." -plenumDebVersion=$(grep -oP "indy-plenum==\d+.\d+.\d+((-|.)?(rc|dev)\d+)?" ${TMP_DIR}/setup.py | grep -oP "\d+.\d+.\d+((-|.)?(rc|dev)\d+)?" | sed 's/\./\~/3') +# Converts Versions defined in the following forms to their equivalent dep version format: +# 1.14.0.rc0 ==> 1.14.0~rc0 +# 1.14.0-rc0 ==> 1.14.0~rc0 +# 1.14.0.dev0654678970 ==> 1.14.0~dev0654678970 +# 1.14.0-dev0654678970 ==> 1.14.0~dev0654678970 +plenumDebVersion=$(grep -oP "indy-plenum==\d+.\d+.\d+((-|.)?(rc|dev)\d+)?" ${TMP_DIR}/setup.py | grep -oP "\d+.\d+.\d+((-|.)?(rc|dev)\d+)?" | sed 's/\./\~/3' | sed 's/\-/\~/1') echo "plenumDebVersion: ${plenumDebVersion}" sed -i "s/{package_name}/${PACKAGE_NAME}/" "prerm" From 8b23813ffa62e4aeb8a0aa081706943bc3500143 Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Fri, 7 Feb 2025 07:45:27 -0800 Subject: [PATCH 2/5] Bump version version to 1.14.0 Signed-off-by: Wade Barnes --- indy_node/__version__.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indy_node/__version__.json b/indy_node/__version__.json index 7ea5d7879..8fd605536 100644 --- a/indy_node/__version__.json +++ b/indy_node/__version__.json @@ -1 +1 @@ -[1, 13, 2, "", ""] +[1, 14, 0, "", ""] From 9297736877bc7124b9f4c9b5d8d9794f82026dda Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Fri, 7 Feb 2025 08:07:31 -0800 Subject: [PATCH 3/5] Add rc channel to node-buid image Signed-off-by: Wade Barnes --- .github/workflows/build/Dockerfile.ubuntu-2204 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build/Dockerfile.ubuntu-2204 b/.github/workflows/build/Dockerfile.ubuntu-2204 index 030a5f936..b7d6e0ba7 100644 --- a/.github/workflows/build/Dockerfile.ubuntu-2204 +++ b/.github/workflows/build/Dockerfile.ubuntu-2204 @@ -31,7 +31,7 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9692C00E657DDE61 && # Plenum # - https://github.com/hyperledger/indy-plenum/issues/1546 # - Needed to pick up rocksdb=5.8.8 -RUN echo "deb https://hyperledger.jfrog.io/artifactory/indy jammy dev" >> /etc/apt/sources.list && \ +RUN echo "deb https://hyperledger.jfrog.io/artifactory/indy jammy dev rc" >> /etc/apt/sources.list && \ echo "deb http://security.ubuntu.com/ubuntu bionic-security main" >> /etc/apt/sources.list && \ echo "deb https://repo.sovrin.org/deb bionic master" >> /etc/apt/sources.list && \ echo "deb https://repo.sovrin.org/sdk/deb bionic master" >> /etc/apt/sources.list From fcdac9c37937af049310ee122dafa89bbe7e81ce Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Fri, 7 Feb 2025 08:55:13 -0800 Subject: [PATCH 4/5] Fix missing dependencies Signed-off-by: Wade Barnes --- build-scripts/ubuntu-2204/prepare-package.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/build-scripts/ubuntu-2204/prepare-package.sh b/build-scripts/ubuntu-2204/prepare-package.sh index ab5aabb1b..153510461 100755 --- a/build-scripts/ubuntu-2204/prepare-package.sh +++ b/build-scripts/ubuntu-2204/prepare-package.sh @@ -25,15 +25,16 @@ bash -ex $GENERATE_MANIFEST_SCRIPT cat $module_name/__manifest__.json if [ "$distro_packages" = "debian-packages" ]; then + # Only used for the deb package builds, NOT for the PyPi package builds. echo -e "\n\nPrepares indy-node debian package version" sed -i -r "s~indy-node==([0-9\.]+[0-9])(\.)?([a-z]+)~indy-node==\1\~\3~" setup.py - # Update the package names to match the names that are available on the os. - echo -e "\nAdapt the dependencies for the Canonical archive" - sed -i "s~timeout-decorator~python3-timeout-decorator~" setup.py - sed -i "s~distro~python3-distro~" setup.py + # Update the package names to match the versions that are pre-installed on the os. + echo -e "\nAdapting the dependencies for the Canonical archive" + sed -i "s~timeout-decorator>=0.5.0~python3-timeout-decorator==0.5.0-1~" setup.py + sed -i "s~distro==1.7.0~python3-distro==1.7.0-1~" setup.py sed -i "s~importlib-metadata=~python3-importlib-metadata=~" setup.py - + echo "Preparing config files" GENERAL_CONFIG_DIR="\/etc\/indy" REPO_GENERAL_CONFIG_DIR="indy_node/general_config" @@ -54,4 +55,4 @@ fi popd -echo -e "\nFinished preparing $repo for publishing\n" \ No newline at end of file +echo -e "\nFinished preparing $repo for publishing\n" From 2acd7768ed90cd8c992681fb3abc554d7e93429b Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Fri, 7 Feb 2025 09:13:22 -0800 Subject: [PATCH 5/5] Pin Cython to fix RocksDB install Signed-off-by: Wade Barnes --- .github/workflows/build/Dockerfile.ubuntu-2204 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build/Dockerfile.ubuntu-2204 b/.github/workflows/build/Dockerfile.ubuntu-2204 index b7d6e0ba7..dde10261e 100644 --- a/.github/workflows/build/Dockerfile.ubuntu-2204 +++ b/.github/workflows/build/Dockerfile.ubuntu-2204 @@ -36,7 +36,12 @@ RUN echo "deb https://hyperledger.jfrog.io/artifactory/indy jammy dev rc" >> /e echo "deb https://repo.sovrin.org/deb bionic master" >> /etc/apt/sources.list && \ echo "deb https://repo.sovrin.org/sdk/deb bionic master" >> /etc/apt/sources.list -RUN apt-get update -y && apt-get install -y rubygems python3-pip && apt-get -y autoremove && rm -rf /var/lib/apt/lists/* +RUN apt-get update -y && apt-get install -y \ + rubygems \ + python3-pip && \ + apt-get -y autoremove && \ + rm -rf /var/lib/apt/lists/* # install fpm -RUN gem install --no-document rake dotenv:2.8.1 fpm:1.15.0 +RUN gem install --no-document rake dotenv:2.8.1 fpm:1.15.0 && \ + pip3 install Cython==0.29.36