Files
webdlp/.gitea/workflows/publish-package.yml
T
2026-07-19 22:28:19 +02:00

77 lines
2.6 KiB
YAML

# .gitea/workflows/build.yaml
name: Build and Push Docker Image
on:
push:
branches:
- 'main'
- 'master'
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# 🔧 INSTALLAZIONE DOCKER
- name: Install Docker
run: |
# Aggiorna e installa dipendenze
apt-get update
apt-get install -y ca-certificates curl
# Prepara la directory per le chiavi
install -m 0755 -d /etc/apt/keyrings
# Scarica la chiave GPG di Docker
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Aggiungi il repository Docker
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Architectures: amd64
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Installa Docker
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Verifica installazione
docker --version
docker compose version
# 🔑 LOGIN AL REGISTRY
- name: Log in to Gitea Container Registry
run: |
echo "${{ secrets.AUTHTOKEN }}" | docker login \
-u "${{ secrets.REGISTRY_USER }}" \
--password-stdin \
gitea.enrilinux.ovh
# 📝 ESTRAI METADATI
- name: Extract metadata
id: meta
run: |
echo "REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F'/' '{print $2}')" >> $GITHUB_OUTPUT
echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "TAG_LATEST=gitea.enrilinux.ovh/${{ github.repository_owner }}/$(echo ${GITHUB_REPOSITORY} | awk -F'/' '{print $2}'):latest" >> $GITHUB_OUTPUT
echo "TAG_SHA=gitea.enrilinux.ovh/${{ github.repository_owner }}/$(echo ${GITHUB_REPOSITORY} | awk -F'/' '{print $2}'):$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
# 🏗️ BUILD DELL'IMMAGINE
- name: Build Docker image
run: |
docker build -t ${{ steps.meta.outputs.TAG_LATEST }} .
docker tag ${{ steps.meta.outputs.TAG_LATEST }} ${{ steps.meta.outputs.TAG_SHA }}
# 📤 PUSH DELL'IMMAGINE
- name: Push Docker image
run: |
docker push ${{ steps.meta.outputs.TAG_LATEST }}
docker push ${{ steps.meta.outputs.TAG_SHA }}