lcc_tool/.gitea/workflows/build.yml
2025-11-20 18:23:01 +01:00

88 lines
No EOL
2.7 KiB
YAML

name: Build and Push Docker Image
on:
push:
branches:
- main
- dev
tags:
- 'v*'
pull_request:
branches:
- main
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to Gitea Container Registry
run: |
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.avatic.de -u "${{ gitea.actor }}" --password-stdin
- name: Prepare Docker tags
id: tags
run: |
IMAGE_BASE="git.avatic.de/lcc_public/lcc"
TAGS=""
TAGS="${TAGS} -t ${IMAGE_BASE}:${{ gitea.sha }}"
if [ "${{ gitea.ref_name }}" = "main" ]; then
TAGS="${TAGS} -t ${IMAGE_BASE}:latest"
TAGS="${TAGS} -t ${IMAGE_BASE}:main"
elif [ "${{ gitea.ref_name }}" = "dev" ]; then
TAGS="${TAGS} -t ${IMAGE_BASE}:dev"
fi
if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then
VERSION="${{ gitea.ref_name }}"
TAGS="${TAGS} -t ${IMAGE_BASE}:${VERSION}"
fi
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
echo "image_base=${IMAGE_BASE}" >> $GITHUB_OUTPUT
- name: Build Docker image
run: |
docker build \
--build-arg BUILDKIT_INLINE_CACHE=1 \
${{ steps.tags.outputs.tags }} \
.
- name: Push Docker images
run: |
IMAGE_BASE="${{ steps.tags.outputs.image_base }}"
docker push ${IMAGE_BASE}:${{ gitea.sha }}
if [ "${{ gitea.ref_name }}" = "main" ]; then
docker push ${IMAGE_BASE}:latest
docker push ${IMAGE_BASE}:main
elif [ "${{ gitea.ref_name }}" = "dev" ]; then
docker push ${IMAGE_BASE}:dev
fi
if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then
docker push ${IMAGE_BASE}:${{ gitea.ref_name }}
fi
- name: Deploy to Docker
if: github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'dev')
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts
BRANCH="${{ gitea.ref_name }}"
DEPLOY_PATH="${{ secrets.DEPLOY_PATH }}"
ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << EOF
cd ${DEPLOY_PATH}
docker compose pull lcc-app-${BRANCH}
docker compose --profile ${BRANCH} up -d lcc-app-${BRANCH}
EOF