Comment SFTP avec des actions Github?

Sep 02 2020

Je souhaite utiliser les actions Github pour transférer des fichiers vers un serveur distant via SFTP (seule option pour ce serveur) lorsque je pousse vers Github.

J'utilise cette action https://github.com/marketplace/actions/ftp-deploy

J'ai créé un fichier dans mon dépôt dans .github/workflows/main.ymlet j'ai ajouté:

on: push
name: Publish Website
jobs:
  FTP-Deploy-Action:
    name: FTP-Deploy-Action
    runs-on: ubuntu-latest
    steps:
    - uses: actions/[email protected]
      with:
        fetch-depth: 2
    - name: FTP-Deploy-Action
      uses: SamKirkland/[email protected]
      with:
        ftp-server: ${{ secrets.FTP_SERVER }} ftp-username: ${{ secrets.FTP_USERNAME }}
        ftp-password: ${{ secrets.FTP_PASSWORD }}

J'ai créé un secret pour ce repo qui contient les éléments suivants:

FTP_SERVER: sftp.server.com, FTP_USERNAME: user, FTP_PASSWORD: password

Je peux voir l'action en cours d'exécution dans Github mais cela fait des erreurs sur la FTP-Deploy-Actiontâche.

## [error] Entrée requise et non fournie: serveur ftp

Ceci est secret et fonctionne avec Filezilla.

Quelqu'un saurait-il si j'ai mal configuré cela?

Réponses

2 EdwardRomero Sep 02 2020 at 12:10

J'ai pu le faire fonctionner sur mon propre repo. Je pense que le problème est peut-être lié à la configuration de vos secrets. Cette erreur apparaît généralement lorsque les paramètres requis d'une action github n'ont pas été fournis, donc curieux de savoir si les clés sont différentes ou si elles ont été enregistrées comme vides. Je supprimerais le FTP_SERVERsecret et le créerais à nouveau pour être sûr.

Exécution réussie du workflow

Code de workflow

  - name: FTP-Deploy-Action
    uses: SamKirkland/[email protected]
    with:
      ftp-server: ${{ secrets.FTP_SERVER }} ftp-username: ${{ secrets.FTP_USERNAME }}
      ftp-password: ${{ secrets.FTP_PASSWORD }}
      local-dir: toupload

MISE À JOUR: exemple ajouté par commentaire laissé ci-dessous,

Exemple de création de secret pour référence. Fondamentalement, créez un secret par entrée plutôt qu'un secret groupé séparé par des virgules

La source: https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets