From 3462aff904aacb6b173e3041332ba2f9d920fd05 Mon Sep 17 00:00:00 2001 From: Steve W Date: Sun, 12 Apr 2026 00:41:10 +0000 Subject: [PATCH] fix: switch ci to gitea multi-arch workflow --- .gitea/workflows/ci.yml | 44 ++++++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 36 -------------------------------- 2 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 .gitea/workflows/ci.yml delete mode 100644 .github/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..defd28e --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,44 @@ +name: ci + +on: + push: + branches: + - main + +jobs: + build-test-push: + runs-on: ubuntu-latest + env: + IMAGE: git.danhenry.dev/thelab/work-queue-api + DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + steps: + - name: Install system dependencies + run: | + apt-get update + apt-get install -y --no-install-recommends curl ca-certificates git docker.io qemu-user-static + - name: Install uv and run tests + run: | + curl -LsSf https://astral.sh/uv/install.sh | sh + export PATH="$HOME/.local/bin:$PATH" + uv sync --frozen --dev + uv run pytest + - name: Configure binfmt for cross-builds + run: docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64 + - name: Create buildx builder + run: | + docker buildx rm multiarch-builder || true + docker buildx create --name multiarch-builder --use + docker buildx inspect --bootstrap + - name: Log in to registry + run: echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin + - name: Build and push multi-arch image + run: | + SHORT_SHA=$(git rev-parse --short HEAD) + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --push \ + -t ${IMAGE}:latest \ + -t ${IMAGE}:${SHORT_SHA} \ + . diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 16482a6..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: ci - -on: - push: - branches: [main] - -jobs: - build-test-push: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - name: Add uv to PATH - run: echo "$HOME/.local/bin" >> "$GITHUB_PATH" - - name: Sync dependencies - run: uv sync --frozen - - name: Run tests - run: uv run pytest - - name: Log in to registry - env: - DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }} - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - - name: Build and push image - env: - IMAGE: git.danhenry.dev/thelab/work-queue-api - run: | - SHORT_SHA=$(git rev-parse --short HEAD) - docker build -t ${IMAGE}:latest -t ${IMAGE}:${SHORT_SHA} . - docker push ${IMAGE}:latest - docker push ${IMAGE}:${SHORT_SHA}