To pass variable in script you will have to define it in the ENV first then pass the ENV variable in the script
name: Backup Nextcloud
on:
schedule:
# Runs "At 02:01" (see https://crontab.guru)
- cron: '1 2 * * *'
jobs:
ssh:
name: Backup Nextcloud
runs-on: [self-hosted, linux]
env:
# This is used to define the environment
SYSTEM_USER: ${{ secrets.SYSTEM_USER }}
NEXTCLOUD_SCRIPT_PATH: ${{ secrets.NEXTCLOUD_SCRIPT_PATH }}
steps:
- name: SSH and execute Backup Script
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOSTNAME }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
# This is used to pass the variables in the script
envs: SYSTEM_USER, NEXTCLOUD_SCRIPT_PATH
# This is used to execute the script from variable
script: |
sudo bash $NEXTCLOUD_SCRIPT_PATH