77 lines
2.6 KiB
YAML
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 }}
|