Add .gitea/workflows/git-to-ptero.yaml
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
name: Push to SFTP
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# push:
|
||||
# branches:
|
||||
# - main # Optional: Run automatically on pushes to the main branch
|
||||
|
||||
jobs:
|
||||
deploy-to-sftp:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install lftp and ssh
|
||||
run: sudo apt-get update && sudo apt-get install -y lftp openssh-client
|
||||
|
||||
- name: Set up SSH Private Key
|
||||
env:
|
||||
# Binds the secret to a secure environment variable
|
||||
SSH_PRIVATE_KEY: ${{ secrets.SSH }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
# Uses the environment variable, so the raw key is never printed in the execution log
|
||||
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
|
||||
- name: Push files via SFTP with progress
|
||||
run: |
|
||||
# The mirror command below uses the -R (reverse) flag
|
||||
# to push from local './' to remote './'
|
||||
# Connection is made using 'open' inside the execution block to enforce SSH key usage
|
||||
lftp -e "set sftp:connect-program 'ssh -a -x -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -o BatchMode=yes -o PasswordAuthentication=no'; \
|
||||
set sftp:auto-confirm yes; \
|
||||
set net:max-retries 5; \
|
||||
set net:timeout 30; \
|
||||
set cmd:fail-exit yes; \
|
||||
open -u ${{ secrets.SSH_USER }}, sftp://10.1.17.20:2022; \
|
||||
mirror -R --verbose --parallel=4 ./ ./; \
|
||||
quit"
|
||||
Reference in New Issue
Block a user