name: Docker Build on: push: branches: - main tags: - 'v*' workflow_dispatch: jobs: build-and-push: name: Build and Push Docker Image runs-on: act-runner-4c6g env: RUNNER_TOOL_CACHE: /toolcache steps: - name: Install Docker CLI run: | if ! command -v docker &> /dev/null; then if command -v apk &> /dev/null; then apk add --no-cache docker-cli elif command -v apt-get &> /dev/null; then apt-get update && apt-get install -y docker.io else curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz | tar xz -C /tmp mv /tmp/docker/docker /usr/local/bin/ chmod +x /usr/local/bin/docker fi fi docker --version - name: Checkout repository uses: actions/checkout@v4 - name: Login to Gitea Container Registry run: | echo "${{ secrets.PACKAGES_TOKEN }}" | docker login git.viaeon.com -u "${{ github.actor }}" --password-stdin 2>&1 - name: Build Docker image run: | echo "Building image..." docker build \ --label "org.opencontainers.image.source=https://git.viaeon.com/admin/verify" \ --label "org.opencontainers.image.revision=${{ github.sha }}" \ -t git.viaeon.com/admin/verify:${{ github.ref_name }} \ -t git.viaeon.com/admin/verify:latest . 2>&1 - name: Push Docker image run: | echo "Pushing ${{ github.ref_name }}..." docker push git.viaeon.com/admin/verify:${{ github.ref_name }} 2>&1 echo "Pushing latest..." docker push git.viaeon.com/admin/verify:latest 2>&1 deploy: name: Deploy to Server runs-on: act-runner-4c6g needs: build-and-push env: RUNNER_TOOL_CACHE: /toolcache steps: - name: Install sshpass run: | if command -v apk &> /dev/null; then apk add --no-cache sshpass openssh-client elif command -v apt-get &> /dev/null; then apt-get update && apt-get install -y sshpass openssh-client fi - name: Deploy via SSH run: | sshpass -p '${{ secrets.DEPLOY_PASSWORD }}' ssh -o StrictHostKeyChecking=no -p ${{ secrets.DEPLOY_PORT || '22' }} ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << 'ENDSSH' cd ${{ secrets.DEPLOY_PATH }} docker compose pull docker compose up -d --remove-orphans docker image prune -f ENDSSH