fix: switch ci to gitea multi-arch workflow
Some checks failed
ci / build-test-push (push) Failing after 58s
Some checks failed
ci / build-test-push (push) Failing after 58s
This commit is contained in:
44
.gitea/workflows/ci.yml
Normal file
44
.gitea/workflows/ci.yml
Normal file
@@ -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} \
|
||||
.
|
||||
36
.github/workflows/ci.yml
vendored
36
.github/workflows/ci.yml
vendored
@@ -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}
|
||||
Reference in New Issue
Block a user