name : Docker Develop Release
on :
push :
branches : [ develop ]
jobs :
verify-changes :
runs-on : ubuntu-latest
outputs :
build : ${{ steps.list-changes.outputs.build }}
steps :
- name : Check Out Repo
uses : actions/checkout@v4
with :
fetch-depth : 0
ref : develop
- name : Get changes
id : get-changes
run : echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
- name : List changed files
id : list-changes
run : |
for file in ${{ steps.get-changes.outputs.files }}; do
if [[ $file =~ ^(defaults|fonts|modules|kometa.py|requirements.txt|.dockerignore|Dockerfile).*$ ]] ; then
echo "$file will trigger docker build"
echo "build=true" >> $GITHUB_OUTPUT
else
echo "$file will not trigger docker build"
fi
done
docker-build :
runs-on : ubuntu-latest
needs : [ verify-changes ]
if : needs.verify-changes.outputs.build == 'true'
steps :
- name : Check Out Repo
uses : actions/checkout@v4
with :
ref : develop
- name : Login to Docker Hub
uses : docker/login-action@v3
with :
username : ${{ secrets.DOCKER_HUB_USERNAME }}
password : ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name : Set up QEMU
uses : docker/setup-qemu-action@master
with :
platforms : all
- name : Set up Docker Buildx
id : buildx
uses : docker/setup-buildx-action@v3
- name : Build and Push
id : docker_build
uses : docker/build-push-action@v5
with :
context : ./
file : ./Dockerfile
build-args : |
"BRANCH_NAME=develop"
platforms : linux/amd64,linux/arm64,linux/arm/v7
push : true
tags : kometateam/kometa:develop
cache-from : type=gha
cache-to : type=gha,mode=max
- name : Discord Success Notification
uses : Kometa-Team/discord-notifications@master
if : success()
with :
webhook_id_token : ${{ secrets.BUILD_WEBHOOK }}
title : "${{ vars.REPO_NAME }} develop: ${{ vars.TEXT_SUCCESS }}"
url : https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
color : ${{ vars.COLOR_SUCCESS }}
username : ${{ vars.BOT_NAME }}
avatar_url : ${{ vars.BOT_IMAGE }}
author : ${{ vars.DOCKER_NAME }}
author_icon_url : ${{ vars.DOCKER_IMAGE }}
- name : Discord Failure Notification
uses : Kometa-Team/discord-notifications@master
if : failure()
with :
webhook_id_token : ${{ secrets.BUILD_WEBHOOK }}
message : ${{ vars.BUILD_FAILURE_ROLE }}
title : "${{ vars.REPO_NAME }} develop: ${{ vars.TEXT_FAILURE }}"
url : https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
color : ${{ vars.COLOR_FAILURE }}
username : ${{ vars.BOT_NAME }}
avatar_url : ${{ vars.BOT_IMAGE }}
author : ${{ vars.DOCKER_NAME }}
author_icon_url : ${{ vars.DOCKER_IMAGE }}
commit-notification :
runs-on : ubuntu-latest
needs : [ docker-build, verify-changes ]
if : ${{ success() && needs.verify-changes.outputs.build == 'true' }}
steps :
- name : Send Discord Commit Notification
uses : Kometa-Team/discord-notifications@master
with :
webhook_id_token : ${{ secrets.DEVELOP_WEBHOOK }}
title : ${{ vars.TEXT_COMMITS }}
message : "<@&954835263731949623> - An update to Kometa has been published and is available to users of the **develop** branch.\n\nWe **strongly** recommend users who previously switched to the `nightly` branch to resolve any previous issues to now switch back to the `develop` branch now."
commits : "true"
color : ${{ vars.COLOR_SUCCESS }}
username : ${{ vars.BOT_NAME }}
avatar_url : ${{ vars.BOT_IMAGE }}
author : ${{ vars.REPO_NAME }} Develop Release
author_icon_url : ${{ vars.RELEASE_IMAGE }}