61 lines
2.2 KiB
YAML
61 lines
2.2 KiB
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
|
|
|
|
- name: Install Docker (for Debian bullseye)
|
|
run: |
|
|
# Aggiorna i pacchetti
|
|
apt-get update
|
|
apt-get install -y ca-certificates curl gnupg lsb-release
|
|
|
|
# Aggiungi la chiave GPG di Docker
|
|
mkdir -p /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
|
|
# Aggiungi il repository DOCKER (usa bullseye, non bookworm!)
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
|
|
# Installa Docker
|
|
apt-get update
|
|
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
# Verifica
|
|
docker --version
|
|
docker compose version
|
|
|
|
- name: Log in to Gitea Container Registry
|
|
run: |
|
|
echo "${{ secrets.AUTHTOKEN }}" | docker login \
|
|
-u "${{ secrets.REGISTRY_USER }}" \
|
|
--password-stdin \
|
|
gitea.enrilinux.ovh
|
|
|
|
- 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
|
|
|
|
- name: Build and push Docker image
|
|
run: |
|
|
REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F'/' '{print $2}')
|
|
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
|
|
docker build -t gitea.enrilinux.ovh/${{ github.repository_owner }}/${REPO_NAME}:latest .
|
|
docker tag gitea.enrilinux.ovh/${{ github.repository_owner }}/${REPO_NAME}:latest \
|
|
gitea.enrilinux.ovh/${{ github.repository_owner }}/${REPO_NAME}:${SHORT_SHA}
|
|
|
|
docker push gitea.enrilinux.ovh/${{ github.repository_owner }}/${REPO_NAME}:latest
|
|
docker push gitea.enrilinux.ovh/${{ github.repository_owner }}/${REPO_NAME}:${SHORT_SHA}
|