diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml new file mode 100644 index 0000000..b6a6f11 --- /dev/null +++ b/.gitea/workflows/build-and-push.yaml @@ -0,0 +1,48 @@ +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.REGISTRY_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 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cb13a2c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.13.5-alpine3.22 +COPY ./app /app +WORKDIR /app +RUN pip install -r requirements.txt +CMD ["python", "/app/main.py"] \ No newline at end of file