From 61e891dbe0b21a75ec309ec21abb81122c1e26ef Mon Sep 17 00:00:00 2001 From: Vadim Soltan Date: Mon, 16 Jun 2025 09:22:46 -0400 Subject: [PATCH 1/5] Reverted runner os version to avoid glibc library issue. --- .github/workflows/build-and-publish-docker.yml | 4 ++-- .github/workflows/update_compatible_version.yml | 2 +- docs/compatible_version.ndjson | 1 + pyproject.toml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-publish-docker.yml b/.github/workflows/build-and-publish-docker.yml index c6f31da8..283f5961 100644 --- a/.github/workflows/build-and-publish-docker.yml +++ b/.github/workflows/build-and-publish-docker.yml @@ -23,7 +23,7 @@ on: jobs: get-version: name: Get pilot cli version - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 outputs: cli_version: ${{steps.get-version.outputs.cli_version}} steps: @@ -39,7 +39,7 @@ jobs: build-and-push-docker-image: needs: [get-version] name: Build Docker images and push to repositories - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/update_compatible_version.yml b/.github/workflows/update_compatible_version.yml index 2f85d6e0..f1a35732 100644 --- a/.github/workflows/update_compatible_version.yml +++ b/.github/workflows/update_compatible_version.yml @@ -9,7 +9,7 @@ on: jobs: update-compatible-versions: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout repository diff --git a/docs/compatible_version.ndjson b/docs/compatible_version.ndjson index 08339c06..127ef959 100644 --- a/docs/compatible_version.ndjson +++ b/docs/compatible_version.ndjson @@ -12,3 +12,4 @@ {"Cli Version": "3.19.3", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} {"Cli Version": "3.19.4", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} {"Cli Version": "3.19.5", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} +{"Cli Version": "3.19.6", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} diff --git a/pyproject.toml b/pyproject.toml index 24ed0290..204702be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "app" -version = "3.19.5" +version = "3.19.6" description = "This service is designed to support pilot platform" authors = ["Indoc Systems"] From 4fb353c7c5f66acd596f47e3c7d9ec2936ef9b9d Mon Sep 17 00:00:00 2001 From: Vadim Soltan Date: Mon, 16 Jun 2025 14:31:49 -0400 Subject: [PATCH 2/5] All workflows 20.04 --- .github/workflows/build-and-publish.yml | 2 +- .github/workflows/run-tests.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 6321b157..d40ea28b 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -17,7 +17,7 @@ on: jobs: pre-build-setup: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 if: github.event.pull_request.merged == true # Runs only if PR is merged outputs: diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index bd29d336..a67bcff6 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -11,7 +11,7 @@ on: jobs: tests: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/pyproject.toml b/pyproject.toml index 204702be..85872206 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "app" -version = "3.19.6" +version = "3.19.7" description = "This service is designed to support pilot platform" authors = ["Indoc Systems"] From 8d81e0442b77c2a824d425e04f445e36f0d24be4 Mon Sep 17 00:00:00 2001 From: Vadim Soltan Date: Mon, 16 Jun 2025 14:47:37 -0400 Subject: [PATCH 3/5] Switched to manylinux. --- .../workflows/build-and-publish-docker.yml | 4 +- .github/workflows/build-and-publish.yml | 65 +++++++++++-------- .github/workflows/run-tests.yml | 2 +- .../workflows/update_compatible_version.yml | 2 +- 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build-and-publish-docker.yml b/.github/workflows/build-and-publish-docker.yml index 283f5961..c6f31da8 100644 --- a/.github/workflows/build-and-publish-docker.yml +++ b/.github/workflows/build-and-publish-docker.yml @@ -23,7 +23,7 @@ on: jobs: get-version: name: Get pilot cli version - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest outputs: cli_version: ${{steps.get-version.outputs.cli_version}} steps: @@ -39,7 +39,7 @@ jobs: build-and-push-docker-image: needs: [get-version] name: Build Docker images and push to repositories - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index d40ea28b..f646383d 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -17,7 +17,7 @@ on: jobs: pre-build-setup: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest if: github.event.pull_request.merged == true # Runs only if PR is merged outputs: @@ -69,7 +69,7 @@ jobs: push-binary-linux: needs: [ pre-build-setup ] if: ${{ needs.pre-build-setup.outputs.branch == 'main' || needs.pre-build-setup.outputs.branch == 'develop'}} - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest outputs: upload_url: ${{steps.create_release.outputs.upload_url}} steps: @@ -83,17 +83,12 @@ jobs: with: name: release-message - - name: Download Release Message Artifact - uses: actions/download-artifact@v4 - with: - name: release-message - - - name: Set up Python + - name: Set up Python for version extraction uses: actions/setup-python@v4 with: python-version: 3.10.12 - - name: Install Poetry + - name: Install Poetry for version extraction uses: snok/install-poetry@v1 with: version: 1.8.3 @@ -101,22 +96,27 @@ jobs: virtualenvs-in-project: true installer-parallel: true - - name: Set up cache - id: cached-poetry-dependencies - uses: actions/cache@v3 - with: - path: .venv - key: venv-linux-${{ hashFiles('**/poetry.lock') }} - - - name: Ensure cache is healthy - if: steps.cached-poetry-dependencies.outputs.cache-hit == 'true' - run: timeout 10s poetry run pip --version || rm -rf .venv - - - name: Install dependencies - run: poetry install --no-interaction - - - name: Build default binary - run: poetry run pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux --paths=./.venv/lib/python3.10/site-packages ./app/pilotcli.py -n ${{ github.sha }} + - name: Build default binary using manylinux_2_31 + run: | + docker run --rm -v ${{ github.workspace }}:/io quay.io/pypa/manylinux_2_31_x86_64 bash -c " + cd /io + mkdir -p ./app/bundled_app/linux ./app/build/linux + + # Install Poetry + curl -sSL https://install.python-poetry.org | python3 - + export PATH=\$PATH:/root/.local/bin + + # Configure and install dependencies + cd /io + poetry config virtualenvs.create false + poetry install --no-interaction + + # Install PyInstaller + pip install pyinstaller + + # Build binary + pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux ./app/pilotcli.py -n ${{ github.sha }} + " - name: Rename default output file run: mv "./app/bundled_app/linux/${{ github.sha }}" "./app/bundled_app/linux/pilotcli_linux" @@ -124,8 +124,17 @@ jobs: - name: Enable cloud mode run: touch ./app/ENABLE_CLOUD_MODE - - name: Build cloud binary - run: poetry run pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux --paths=./.venv/lib/python3.9/site-packages --add-binary=$(pwd)/app/ENABLE_CLOUD_MODE:. ./app/pilotcli.py -n ${{ github.sha }} + - name: Build cloud binary using manylinux_2_31 + run: | + docker run --rm -v ${{ github.workspace }}:/io quay.io/pypa/manylinux_2_31_x86_64 bash -c " + cd /io + + # Poetry should already be installed from previous step + export PATH=\$PATH:/root/.local/bin + + # Build cloud binary + pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux --add-binary=/io/app/ENABLE_CLOUD_MODE:. ./app/pilotcli.py -n ${{ github.sha }} + " - name: Rename cloud output file run: mv "./app/bundled_app/linux/${{ github.sha }}" "./app/bundled_app/linux/pilotcli_cloud" @@ -249,4 +258,4 @@ jobs: upload_url: ${{ needs.push-binary-linux.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./app/bundled_app/windows/${{ github.sha }}.exe asset_name: pilotcli_windows.exe - asset_content_type: application/octet-stream + asset_content_type: application/octet-stream \ No newline at end of file diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index a67bcff6..bd29d336 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -11,7 +11,7 @@ on: jobs: tests: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/.github/workflows/update_compatible_version.yml b/.github/workflows/update_compatible_version.yml index f1a35732..2f85d6e0 100644 --- a/.github/workflows/update_compatible_version.yml +++ b/.github/workflows/update_compatible_version.yml @@ -9,7 +9,7 @@ on: jobs: update-compatible-versions: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout repository From 9f31783355b408cca253d5dc5c30bbe7ae6925ec Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 16 Jun 2025 18:47:53 +0000 Subject: [PATCH 4/5] Updated docs/compatible_version.ndjson with PR #242 --- README.md | 3 +++ docs/compatible_version.ndjson | 1 + 2 files changed, 4 insertions(+) diff --git a/README.md b/README.md index b734fcf2..5762e844 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,9 @@ Command line tool that allows the user to execute data operations on the platfor | 3.19.2 | 2.15.2 | 2.15.2 | | 3.19.3 | 2.15.2 | 2.15.2 | | 3.19.4 | 2.15.2 | 2.15.2 | +| 3.19.5 | 2.15.2 | 2.15.2 | +| 3.19.6 | 2.15.2 | 2.15.2 | +| 3.19.7 | 2.15.2 | 2.15.2 | ## Build Instructions diff --git a/docs/compatible_version.ndjson b/docs/compatible_version.ndjson index 127ef959..d0ef7a37 100644 --- a/docs/compatible_version.ndjson +++ b/docs/compatible_version.ndjson @@ -13,3 +13,4 @@ {"Cli Version": "3.19.4", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} {"Cli Version": "3.19.5", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} {"Cli Version": "3.19.6", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} +{"Cli Version": "3.19.7", "Pilot Release Version": "2.15.2", "Compatible Version": "2.15.2"} From 4eeea0b76c3f27dc0e7090a5c9aadba001fb2f36 Mon Sep 17 00:00:00 2001 From: Vadim Soltan Date: Mon, 16 Jun 2025 14:48:50 -0400 Subject: [PATCH 5/5] Formatting --- .github/workflows/build-and-publish.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index f646383d..f643d6db 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -101,19 +101,19 @@ jobs: docker run --rm -v ${{ github.workspace }}:/io quay.io/pypa/manylinux_2_31_x86_64 bash -c " cd /io mkdir -p ./app/bundled_app/linux ./app/build/linux - + # Install Poetry curl -sSL https://install.python-poetry.org | python3 - export PATH=\$PATH:/root/.local/bin - + # Configure and install dependencies cd /io poetry config virtualenvs.create false poetry install --no-interaction - + # Install PyInstaller pip install pyinstaller - + # Build binary pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux ./app/pilotcli.py -n ${{ github.sha }} " @@ -128,10 +128,10 @@ jobs: run: | docker run --rm -v ${{ github.workspace }}:/io quay.io/pypa/manylinux_2_31_x86_64 bash -c " cd /io - + # Poetry should already be installed from previous step export PATH=\$PATH:/root/.local/bin - + # Build cloud binary pyinstaller -F --distpath ./app/bundled_app/linux --specpath ./app/build/linux --workpath ./app/build/linux --add-binary=/io/app/ENABLE_CLOUD_MODE:. ./app/pilotcli.py -n ${{ github.sha }} " @@ -258,4 +258,4 @@ jobs: upload_url: ${{ needs.push-binary-linux.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./app/bundled_app/windows/${{ github.sha }}.exe asset_name: pilotcli_windows.exe - asset_content_type: application/octet-stream \ No newline at end of file + asset_content_type: application/octet-stream