Files
TDPI 82c56ccb44
Some checks failed
Build and Push / check-and-build (push) Failing after 11m7s
fix: missing token
2026-03-01 09:20:08 +01:00

80 lines
2.6 KiB
YAML

name: Build and Push
on:
schedule:
# Täglich um 04:00 UTC
- cron: '0 22 * * *'
workflow_dispatch:
push:
branches:
- main
env:
REGISTRY: git.tdpi.dev
IMAGE_NAME: tdpi/protonmailmailbridge-fix
UPSTREAM_IMAGE: shenxn/protonmail-bridge:latest
jobs:
check-and-build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get upstream digest
id: upstream
run: |
UPSTREAM_DIGEST=$(docker manifest inspect ${{ env.UPSTREAM_IMAGE }} | jq -r '.manifests[0].digest // .config.digest')
echo "digest=${UPSTREAM_DIGEST}" >> $GITHUB_OUTPUT
echo "Upstream digest: ${UPSTREAM_DIGEST}"
- name: Get current digest from registry
id: current
continue-on-error: true
run: |
CURRENT_DIGEST=$(docker manifest inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest 2>/dev/null | jq -r '.annotations["upstream.digest"] // empty')
echo "digest=${CURRENT_DIGEST}" >> $GITHUB_OUTPUT
echo "Current stored upstream digest: ${CURRENT_DIGEST}"
- name: Check if build needed
id: check
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "needed=true" >> $GITHUB_OUTPUT
echo "Manual trigger - building"
elif [ "${{ github.event_name }}" = "push" ]; then
echo "needed=true" >> $GITHUB_OUTPUT
echo "Push event - building"
elif [ "${{ steps.upstream.outputs.digest }}" != "${{ steps.current.outputs.digest }}" ]; then
echo "needed=true" >> $GITHUB_OUTPUT
echo "Upstream changed - building"
else
echo "needed=false" >> $GITHUB_OUTPUT
echo "No changes - skipping build"
fi
- name: Set up Docker Buildx
if: steps.check.outputs.needed == 'true'
uses: docker/setup-buildx-action@v3
- name: Login to Gitea Registry
if: steps.check.outputs.needed == 'true'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: TDPI
password: ${{ secrets.GT_TOKEN }}
- name: Build and push
if: steps.check.outputs.needed == 'true'
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
labels: |
upstream.digest=${{ steps.upstream.outputs.digest }}
annotations: |
upstream.digest=${{ steps.upstream.outputs.digest }}