From 6fee7eed8c1a84e1d2f9b48cd833fd82d60e4789 Mon Sep 17 00:00:00 2001 From: Emily Voss Date: Wed, 11 Feb 2026 09:25:07 -0800 Subject: [PATCH 1/4] Fix ARM64 runner --- .github/workflows/docker-publish.yml | 2 +- CHANGELOG.md | 5 ++++- prepline_general/api/__version__.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7b7214b66..9df7b1052 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -24,7 +24,7 @@ jobs: strategy: matrix: arch: ["arm64", "amd64"] - runs-on: ${{ matrix.arch == 'arm64' && 'opensource-linux-arm64-4core' || 'opensource-linux-8core' }} + runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'opensource-linux-8core' }} needs: set-short-sha env: SHORT_SHA: ${{ needs.set-short-sha.outputs.short_sha }} diff --git a/CHANGELOG.md b/CHANGELOG.md index e6f17dc65..89ef61c9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.1.1 +* Switch arm64 Docker build runner from custom `opensource-linux-arm64-4core` to GitHub-hosted `ubuntu-24.04-arm` + ## 0.1.0 * Migrate to native uv for package management, replacing pip and pip-compile * Replace black and flake8 with ruff for linting and formatting @@ -5,7 +8,7 @@ * Update Dockerfile, CI workflows, and Makefile to use uv throughout * Fix flaky Korean OCR test assertions for tesseract compatibility * Use `.python-version` file as single source of truth for Python version across all CI workflows -* Re-enable arm64 Docker image builds using a dedicated ARM runner (`opensource-linux-arm64-4core`), restoring multiarch support for both amd64 and arm64 +* Re-enable arm64 Docker image builds with a dedicated ARM runner, restoring multiarch support for both amd64 and arm64 * Switch all CI workflows to faster self-hosted runners (`opensource-linux-8core`) * Split lint tools into a lightweight dependency group so the CI lint step no longer installs heavy runtime dependencies * Add explicit dependencies for `backoff`, `pandas`, `psutil`, `pypdf`, and `requests` (previously only transitive via `unstructured[all-docs]`) diff --git a/prepline_general/api/__version__.py b/prepline_general/api/__version__.py index 2a08aecb1..95d99bb8e 100644 --- a/prepline_general/api/__version__.py +++ b/prepline_general/api/__version__.py @@ -1 +1 @@ -__version__ = "0.1.0" # pragma: no cover +__version__ = "0.1.1" # pragma: no cover From d6fc7d11268e145e44fa1bd6a10f5311d7886472 Mon Sep 17 00:00:00 2001 From: Emily Voss Date: Wed, 11 Feb 2026 09:26:46 -0800 Subject: [PATCH 2/4] Add workflow_dispatch trigger to CD workflow for manual runs Co-authored-by: Cursor --- .github/workflows/docker-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 9df7b1052..715160f12 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -4,6 +4,7 @@ on: push: branches: - main + workflow_dispatch: env: DOCKER_REPOSITORY: quay.io/unstructured-io/unstructured-api From ff8301ed7a0bda218b61071407ccaacf6a84a375 Mon Sep 17 00:00:00 2001 From: Emily Voss Date: Wed, 11 Feb 2026 09:37:30 -0800 Subject: [PATCH 3/4] Build one multiarch manifest --- .github/workflows/docker-publish.yml | 12 ++++++------ CHANGELOG.md | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 715160f12..f6227e49b 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -127,10 +127,10 @@ jobs: docker push $DOCKER_BUILD_REPOSITORY:arm64 - name: Push multiarch manifest run: | - docker manifest create ${DOCKER_REPOSITORY}:latest $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push $DOCKER_REPOSITORY:latest - docker manifest create ${DOCKER_REPOSITORY}:$SHORT_SHA $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push $DOCKER_REPOSITORY:$SHORT_SHA VERSION=$(grep -oP '(?<=__version__ = ")[^"]+' prepline_general/api/__version__.py) - docker manifest create ${DOCKER_REPOSITORY}:$VERSION $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push ${DOCKER_REPOSITORY}:$VERSION + docker buildx imagetools create \ + -t ${DOCKER_REPOSITORY}:latest \ + -t ${DOCKER_REPOSITORY}:$SHORT_SHA \ + -t ${DOCKER_REPOSITORY}:$VERSION \ + $DOCKER_BUILD_REPOSITORY:amd64 \ + $DOCKER_BUILD_REPOSITORY:arm64 diff --git a/CHANGELOG.md b/CHANGELOG.md index 89ef61c9f..22264e4ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## 0.1.1 * Switch arm64 Docker build runner from custom `opensource-linux-arm64-4core` to GitHub-hosted `ubuntu-24.04-arm` +* Consolidate multiarch Docker manifest creation into a single `docker buildx imagetools create` call ## 0.1.0 * Migrate to native uv for package management, replacing pip and pip-compile From 67e3f2a10d1ee905666ac95a979c06aa9352f2cb Mon Sep 17 00:00:00 2001 From: Emily Voss Date: Wed, 11 Feb 2026 09:47:39 -0800 Subject: [PATCH 4/4] Fixes and improvements --- .github/workflows/docker-publish.yml | 6 +----- CHANGELOG.md | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f6227e49b..efe80fbd3 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -87,11 +87,7 @@ jobs: - name: Test image run: | export DOCKER_IMAGE="$DOCKER_BUILD_REPOSITORY:${{ matrix.arch }}-$SHORT_SHA" - if [ "$DOCKER_PLATFORM" == "linux/arm64" ]; then - SKIP_INFERENCE_TESTS=true make docker-test - else - make docker-test - fi + SKIP_INFERENCE_TESTS=true make docker-test - name: Push image run: | # write to the build repository to cache for the publish-images job diff --git a/CHANGELOG.md b/CHANGELOG.md index 22264e4ec..20d2574fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.1.1 * Switch arm64 Docker build runner from custom `opensource-linux-arm64-4core` to GitHub-hosted `ubuntu-24.04-arm` * Consolidate multiarch Docker manifest creation into a single `docker buildx imagetools create` call +* Skip inference tests in CD Docker smoke tests for both architectures (already covered by CI) ## 0.1.0 * Migrate to native uv for package management, replacing pip and pip-compile