Skip to content

Merge pull request #409 from d1egoaz/renovate/docker.io-library-redis-8 #329

Merge pull request #409 from d1egoaz/renovate/docker.io-library-redis-8

Merge pull request #409 from d1egoaz/renovate/docker.io-library-redis-8 #329

name: Portainer Deploy
on:
push:
branches: [ main ]
paths:
- 'services/**/compose.yaml'
- '.github/workflows/portainer-deploy.yml'
- 'scripts/portainer-webhook-deploy.js'
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
with:
files: services/**/compose.yaml
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
- name: Run Portainer deploy script
if: steps.changed-files.outputs.any_changed == 'true'
env:
# Cloudflare Access Service Token (for Portainer authentication)
CF_SERVICE_TOKEN_CLIENT_ID: ${{ secrets.CF_SERVICE_TOKEN_CLIENT_ID }}
CF_SERVICE_TOKEN_CLIENT_SECRET: ${{ secrets.CF_SERVICE_TOKEN_CLIENT_SECRET }}
# Portainer webhook URLs
PORTAINER_WEBHOOK_ADGUARD: ${{ secrets.PORTAINER_WEBHOOK_ADGUARD }}
PORTAINER_WEBHOOK_CLOUDFLARED: ${{ secrets.PORTAINER_WEBHOOK_CLOUDFLARED }}
PORTAINER_WEBHOOK_GOVEE2MQTT: ${{ secrets.PORTAINER_WEBHOOK_GOVEE2MQTT }}
PORTAINER_WEBHOOK_HELLO: ${{ secrets.PORTAINER_WEBHOOK_HELLO }}
PORTAINER_WEBHOOK_HOME_ASSISTANT: ${{ secrets.PORTAINER_WEBHOOK_HOME_ASSISTANT }}
PORTAINER_WEBHOOK_IMMICH: ${{ secrets.PORTAINER_WEBHOOK_IMMICH }}
PORTAINER_WEBHOOK_LITELLM: ${{ secrets.PORTAINER_WEBHOOK_LITELLM }}
PORTAINER_WEBHOOK_MATTER: ${{ secrets.PORTAINER_WEBHOOK_MATTER }}
PORTAINER_WEBHOOK_MOSQUITTO: ${{ secrets.PORTAINER_WEBHOOK_MOSQUITTO }}
PORTAINER_WEBHOOK_MUSIC_ASSISTANT_ALEXA_API: ${{ secrets.PORTAINER_WEBHOOK_MUSIC_ASSISTANT_ALEXA_API }}
PORTAINER_WEBHOOK_NEXTCLOUD: ${{ secrets.PORTAINER_WEBHOOK_NEXTCLOUD }}
PORTAINER_WEBHOOK_NGINXPROXYMANAGER: ${{ secrets.PORTAINER_WEBHOOK_NGINXPROXYMANAGER }}
PORTAINER_WEBHOOK_OPENCLAW: ${{ secrets.PORTAINER_WEBHOOK_OPENCLAW }}
PORTAINER_WEBHOOK_PAPERLESS_AI: ${{ secrets.PORTAINER_WEBHOOK_PAPERLESS_AI }}
PORTAINER_WEBHOOK_PAPERLESS_NGX: ${{ secrets.PORTAINER_WEBHOOK_PAPERLESS_NGX }}
PORTAINER_WEBHOOK_PLEX: ${{ secrets.PORTAINER_WEBHOOK_PLEX }}
PORTAINER_WEBHOOK_POSTGRES: ${{ secrets.PORTAINER_WEBHOOK_POSTGRES }}
PORTAINER_WEBHOOK_REDIS: ${{ secrets.PORTAINER_WEBHOOK_REDIS }}
PORTAINER_WEBHOOK_SIGNAL_CLI_REST_API: ${{ secrets.PORTAINER_WEBHOOK_SIGNAL_CLI_REST_API }}
PORTAINER_WEBHOOK_SIGNAL_CLI_RPC: ${{ secrets.PORTAINER_WEBHOOK_SIGNAL_CLI_RPC }}
PORTAINER_WEBHOOK_UHF_SERVER: ${{ secrets.PORTAINER_WEBHOOK_UHF_SERVER }}
PORTAINER_WEBHOOK_TAILSCALE_SUBNET_ROUTER: ${{ secrets.PORTAINER_WEBHOOK_TAILSCALE_SUBNET_ROUTER }}
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
node scripts/portainer-webhook-deploy.js