Files
yt-dlp-bot/.gitea/workflows/build-and-push.yaml
William P 82304688b8
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 19s
Build and Push Docker Image / deploy-on-green (push) Successful in 8s
implement deploy on green
2025-07-16 23:00:35 -04:00

78 lines
2.7 KiB
YAML

name: Build and Push Docker Image
on:
push:
branches:
- master # Trigger on push to the main branch; adjust as needed
jobs:
build-and-push:
runs-on: ubuntu-latest # Use a runner with Docker support
container: ghcr.io/catthehacker/ubuntu:act-latest # Image with Docker pre-installed
steps:
# Checkout the repository code
- name: Checkout repository
uses: actions/checkout@v4
- name: Set outputs
id: vars
run: |
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
# Set up Docker Buildx for building the image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: remote
endpoint: 'tcp://buildkitd:1234'
# Log in to the Gitea container registry
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: git.dubyatp.xyz
username: williamp
password: ${{ secrets.ACTIONS_TOKEN }} # Personal Access Token for authentication
# Build and push the Docker image
- name: Build and Push Docker Image
uses: docker/build-push-action@v6
with:
context: . # Build context (current directory)
file: ./Dockerfile # Path to Dockerfile
platforms: "linux/amd64,linux/arm64"
push: true # Push to registry after building
tags: |
git.dubyatp.xyz/williamp/yt-dlp-bot:latest
git.dubyatp.xyz/williamp/yt-dlp-bot:${{steps.vars.outputs.sha_short }}
# Tags the image with 'latest' and the commit SHA
deploy-on-green:
needs: build-and-push
runs-on: ubuntu-latest
if: ${{ success() }}
steps:
- name: Checkout target repository
uses: actions/checkout@v4
with:
repository: infrastructure/core-apps
token: ${{ secrets.ACTIONS_TOKEN }}
ref: main
- name: Update image tag in deployment.yaml
uses: mikefarah/yq@master
with:
cmd: yq eval '.spec.template.spec.containers[0].image = "git.dubyatp.xyz/williamp/yt-dlp-bot:${{ needs.build-and-push.outputs.sha_short }}"' -i yt-dlp-bot/deployment.yaml
- name: Commit changes
run: |
git config --local user.email "actions@noreply.dubyatp.xyz"
git config --local user.name "actions[bot]"
git commit -a -m "yt-dlp-bot: deploy update to ${{ needs.build-and-push.outputs.sha_short }}"
- name: Push changes
uses: ad-m/github-push-action@v0.8.0
with:
github_token: ${{ secrets.ACTIONS_TOKEN }}
repository: infrastructure/core-apps
branch: main