Files
Gitea_Action_Test/.gitea/workflows/docker-build.yml

67 lines
1.8 KiB
YAML

name: Docker Build
"on":
workflow_dispatch:
# Uncomment if you also want auto-builds on pushes:
# push:
# branches: [ "main" ]
jobs:
docker:
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Gitea Registry
uses: docker/login-action@v3
with:
registry: gitea.cuihang1201.synology.me
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest
- name: Clean up Buildx builder
if: ${{ always() }}
run: |
docker buildx ls
BUILDER=$(docker buildx ls | awk '/builder/ {print $1; exit}')
if [ -n "$BUILDER" ]; then
docker buildx rm "$BUILDER" || true
fi
# Optional quick health check, runs detached and then cleaned up
- name: Smoke test
run: |
docker run --name docker_build \
gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest
sleep 5
if: ${{ always() }}
- name: Cleanup local container/images
if: always()
run: |
echo "Stop container: "
docker stop docker_build
echo "Remove container: "
docker rm -f docker_build 2>/dev/null || true
echo "Remove image: "
docker rmi gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest
docker image ls -a