我使用github操作部署到服务器。现在,我编写了一个小型bash脚本,以检查目录是否存在,如果存在,请git pull其他明智的git clone。
所有内容都是通用的,但我不知道如何从环境变量中获取存储库的ssh链接:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Create project dir
uses: appleboy/ssh-action@master
with:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
KEY: ${{ secrets.KEY }}
PORT: ${{ secrets.PORT }}
script: |
mkdir -p ~/projects
cd ~/projects
if [ -d "${{ github.event.repository.name }}" ]; then
echo "Directory already exists"
cd ${{ github.event.repository.name }}
git pull --rebase
else
git clone git@github.com:orgname/projectname.git
fi
echo 'Deployment to server succesful!'因此,我们可以看到,git clone git@github.com:orgname/projectname.git仍然是硬编码的。我怎么能像github.event.repository.name一样得到这部分的一般信息
编辑VonC:
GitHub操作的输出:
pwd
ls -alrth
git version
echo "GURL=$(git remote get-url origin)">>$GITHUB_ENV
shell: /bin/bash -e {0}
/home/runner/work/digitalocean-test-deploy/digitalocean-test-deploy
total 60K
drwxr-xr-x 3 runner docker 4.0K Dec 27 13:12 ..
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 tests
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 src
-rw-r--r-- 1 runner docker 1.1K Dec 27 13:12 setup.py
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 settings
-rw-r--r-- 1 runner docker 26 Dec 27 13:12 requirements.txt
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 notebooks
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 docs
drwxr-xr-x 2 runner docker 4.0K Dec 27 13:12 data
-rw-r--r-- 1 runner docker 516 Dec 27 13:12 README.md
-rw-r--r-- 1 runner docker 1.1K Dec 27 13:12 LICENSE
-rw-r--r-- 1 runner docker 1.8K Dec 27 13:12 .gitignore
drwxr-xr-x 3 runner docker 4.0K Dec 27 13:12 .github
drwxr-xr-x 10 runner docker 4.0K Dec 27 13:12 .
drwxr-xr-x 8 runner docker 4.0K Dec 27 13:12 .git
git version 2.29.2发布于 2020-12-27 00:13:55
考虑到签出的工作树中的签出操作允许运行命令。,您可以使用环境变量,因为自2020年10月以来,不受欢迎:
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
echo "GURL=$(git remote get-url origin)">>$GITHUB_ENV
- name: Create project dir
git clone $GURL不过,如所讨论似乎无法在使用ssh-action的步骤中工作,因此使用了第99期 (Q4 2020)。
Q1 2021:这是用评论解决的
最好的方法是自己构建克隆URL,如下所示(未经测试):
uses: appleboy/ssh-action@master
env:
REPO: ${{ github.repository }} # e.g. "appleboy/ssh-action"
TOKEN: ${{ github.token }}
with:
envs: REPO,TOKEN
script: |
git clone https://$TOKEN@github.com/$REPO.githttps://stackoverflow.com/questions/65461758
复制相似问题