Files
OnePieceDle/.gitea/workflows/build-image.yaml

71 lines
2.0 KiB
YAML

name: Build Docker Image
on:
push:
branches:
- main
tags:
- '*'
env:
GITEA_REGISTRY: ${{ gitea.server_url }}
GITEA_USERNAME: ${{ gitea.actor }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Determine image tag
id: tag
run: |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
TAG=${GITHUB_REF#refs/tags/}
elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
TAG=main
else
echo "Not on main branch or a tag, skipping build"
exit 1
fi
echo "tag=$TAG" >> $GITHUB_OUTPUT
# Remove protocol from registry URL
REGISTRY="${{ env.GITEA_REGISTRY }}"
REGISTRY="${REGISTRY#https://}"
REGISTRY="${REGISTRY#http://}"
echo "registry=$REGISTRY" >> $GITHUB_OUTPUT
# Lowercase repository name
REPO="${{ gitea.repository }}"
REPO="${REPO,,}"
echo "repository=$REPO" >> $GITHUB_OUTPUT
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ steps.tag.outputs.registry }}
username: ${{ vars.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ steps.tag.outputs.registry }}/${{ steps.tag.outputs.repository }}:${{ steps.tag.outputs.tag }}
${{ steps.tag.outputs.registry }}/${{ steps.tag.outputs.repository }}:latest
- name: Call deployment webhook
if: ${{ secrets.DEPLOYMENT_WEBHOOK != '' }}
run: |
curl -k -X POST ${{ secrets.DEPLOYMENT_WEBHOOK }} \
-H 'Content-Type: application/json'