diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7b7214b6..efe80fbd 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 @@ -24,7 +25,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 }} @@ -86,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 @@ -126,10 +123,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 e6f17dc6..20d2574f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 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 * Replace black and flake8 with ruff for linting and formatting @@ -5,7 +10,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 2a08aecb..95d99bb8 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