我不知道为什么我的脚本不断给出错误:
name: Node.js Workflow CI/CD
# Trigger the workflow on push and
# pull request events on the master branch
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
# Authenticate to the the server via ssh
# and run our deployment script
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.SSHKEY }}
script: "cd root@XXXX:/project && ./.scripts/deploy.sh"
错误是:
======CMD======
cd ***@***:/project && ./.scripts/deploy.sh
======END======
err: bash: line 1: cd: ***@***:/project: No such file or directory
2024/02/07 15:39:*** Process exited with status 1
仅供参考,我的
project
目录是:
如果有人可以帮忙,我将不胜感激,非常感谢!
您看到的错误表明您在
cd
的 script
参数中使用 ssh-action
命令存在误解。您提供的 cd
命令语法似乎是尝试通过 SSH 连接到服务器并一步更改目录,在这种情况下这是不正确的。 ssh-action
已根据您提供的 host
、username
、port
和 key
参数建立 SSH 连接。因此,您的 script
应该只包含建立连接后在服务器上执行的命令,而不需要再次指定 root@XXXX
。
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.SSHKEY }}
script: "cd /project && ./scripts/deploy.sh"
此配置将使用您提供的凭据和密钥通过 SSH 连接到服务器,更改到
/project
目录,然后执行位于该处的 deploy.sh
脚本。
此外,请确保路径
/project
正确且存在于服务器上。如果它是您通过 SSH 连接到的用户主目录的相对路径,则可能不需要前导斜杠。
确保
deploy.sh
脚本具有执行权限。如果需要,您可以在服务器上使用 chmod +x deploy.sh
进行设置。
如果仍然遇到问题,请在
ls
中的 cd
命令之前添加 script
以列出目录并确保您位于服务器上的预期目录结构中。