Skip to content

Build and push torrserver docker image #1058

Build and push torrserver docker image

Build and push torrserver docker image #1058

Workflow file for this run

name: Build and push torrserver docker image
on:
push:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
env:
TOKEN_TG: ${{ secrets.TOKEN_TG }}
CHAT_ID_TG: ${{ secrets.CHAT_ID_TG }}
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run check version YouROK/TorrServer
run: |
old_version="$(cat README.md | grep Version | sed -n '/.*Version /s///p')"
new_version="$(curl -s "https://api.github.com/repos/YouROK/TorrServer/releases/latest" | jq -r '.tag_name')"
tag="$(echo $new_version | sed 's/MatriX./v/g')"
echo "old_version=$old_version" >> $GITHUB_ENV
echo "$old_version"
echo "new_version=$new_version" >> $GITHUB_ENV
echo "$new_version"
echo "tag=$tag" >> $GITHUB_ENV
echo "$tag"
[[ "$old_version" == "$new_version" ]] && echo $old_version && exit || sed -i "s/Version .*/Version $new_version/" README.md
echo "sed"
[[ "$new_version" == "null" ]] && curl -so /dev/null -X POST https://api.telegram.org/bot$TOKEN_TG/sendMessage -d text="Error checking torrserver $new_version" -d chat_id=$CHAT_ID_TG
echo "yes"
- name: Set up QEMU
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
uses: docker/setup-buildx-action@v3
- name: Docker meta
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ secrets.DOCKERHUB_USERNAME }}/torrserver
- name: Login to DockerHub
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: |
solopasha/torrserver:latest
solopasha/torrserver:${{ env.tag }}
ghcr.io/solopasha/torrserver:latest
ghcr.io/solopasha/torrserver:${{ env.tag }}
labels: ${{ steps.meta.outputs.labels }}
- name: Commit files
if: ${{ env.old_version != env.new_version && env.new_version != 'null' }}
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -am "$(date +%d.%m.%Y) Update $new_version"
git push