gpt4 book ai didi

bash - Github 操作 - 错误 : Process completed with exit code 1

转载 作者:行者123 更新时间:2023-12-04 12:17:59 25 4
gpt4 key购买 nike

我正在尝试设置 github 操作来部署我的应用程序。
我用于启动部署过程的 bash -script 如下所示:

#!/bin/sh
set -e

vendor/bin/phpunit

(git push) || true

git checkout production
git merge master

git push origin production

git checkout master
执行上述脚本时,我得到:
enter image description here
我的 workflows/main.yml 文件如下所示:
name: CD

on:
push:
branches: [ production ]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.PUSH_TOKEN }}
# - name: Set up Node
# uses: actions/setup-node@v1
# with:
# node-version: '12.x'
# - run: npm install
# - run: npm run production
- name: Commit built assets
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git checkout -B deploy
git add -f public/
git commit -m "Build front-end assets"
git push -f origin deploy
- name: Deploy to production
uses: appleboy/ssh-action@master
with:
username: root
host: xx.xx.xxx.xxx
password: ${{ secrets.SSH_PASSWORD }}
script: 'cd /var/www/myProject && ./server_deploy.sh'

运行脚本时,我得到以下原始日志:
2021-03-14T16:04:06.7573174Z ##[section]Starting: Request a runner to run this job
2021-03-14T16:04:07.1344029Z Can't find any online and idle self-hosted runner in current repository that matches the required labels: 'ubuntu-latest'
2021-03-14T16:04:07.1344097Z Can't find any online and idle self-hosted runner in current repository's account/organization that matches the required labels: 'ubuntu-latest'
2021-03-14T16:04:07.1344652Z Found online and idle hosted runner in current repository's account/organization that matches the required labels: 'ubuntu-latest'
2021-03-14T16:04:07.2661405Z ##[section]Finishing: Request a runner to run this job
2021-03-14T16:04:17.0975920Z Current runner version: '2.277.1'
2021-03-14T16:04:17.9082004Z ##[group]Operating System
2021-03-14T16:04:17.9083391Z Ubuntu
2021-03-14T16:04:17.9084015Z 20.04.2
2021-03-14T16:04:17.9084509Z LTS
2021-03-14T16:04:17.9085154Z ##[endgroup]
2021-03-14T16:04:17.9085790Z ##[group]Virtual Environment
2021-03-14T16:04:17.9086576Z Environment: ubuntu-20.04
2021-03-14T16:04:17.9087226Z Version: 20210302.0
2021-03-14T16:04:17.9088413Z Included Software: https://github.com/actions/virtual-environments/blob/ubuntu20/20210302.0/images/linux/Ubuntu2004-README.md
2021-03-14T16:04:17.9090008Z Image Release: https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F
2021-03-14T16:04:17.9091225Z ##[endgroup]
2021-03-14T16:04:17.9093732Z ##[group]GITHUB_TOKEN Permissions
2021-03-14T16:04:17.9095423Z Actions: write
2021-03-14T16:04:17.9096121Z Checks: write
2021-03-14T16:04:17.9096752Z Contents: write
2021-03-14T16:04:17.9097367Z Deployments: write
2021-03-14T16:04:17.9098205Z Issues: write
2021-03-14T16:04:17.9098869Z Metadata: read
2021-03-14T16:04:17.9099572Z OrganizationPackages: write
2021-03-14T16:04:17.9100326Z Packages: write
2021-03-14T16:04:17.9100966Z PullRequests: write
2021-03-14T16:04:17.9101747Z RepositoryProjects: write
2021-03-14T16:04:17.9102476Z SecurityEvents: write
2021-03-14T16:04:17.9103267Z Statuses: write
2021-03-14T16:04:17.9103974Z ##[endgroup]
2021-03-14T16:04:17.9108171Z Prepare workflow directory
2021-03-14T16:04:18.3861957Z Prepare all required actions
2021-03-14T16:04:18.3875377Z Getting action download info
2021-03-14T16:04:18.7415606Z Download action repository 'actions/checkout@v2'
2021-03-14T16:04:19.4196162Z Download action repository 'appleboy/ssh-action@master'
2021-03-14T16:04:20.1340765Z ##[group]Build container for action use: '/home/runner/work/_actions/appleboy/ssh-action/master/Dockerfile'.
2021-03-14T16:04:20.1449431Z ##[command]/usr/bin/docker build -t 5588e4:46e0c05d2f1c4fbf93b7f69ca6a2f1b5 -f "/home/runner/work/_actions/appleboy/ssh-action/master/Dockerfile" "/home/runner/work/_actions/appleboy/ssh-action/master"
2021-03-14T16:04:21.6962547Z Sending build context to Docker daemon 293.9kB
2021-03-14T16:04:21.6963066Z
2021-03-14T16:04:21.6963632Z Step 1/4 : FROM appleboy/drone-ssh:1.6.3-linux-amd64
2021-03-14T16:04:21.6964381Z 1.6.3-linux-amd64: Pulling from appleboy/drone-ssh
2021-03-14T16:04:21.6965036Z 188c0c94c7c5: Pulling fs layer
2021-03-14T16:04:21.6965576Z 66fca843054b: Pulling fs layer
2021-03-14T16:04:21.6966101Z f62e9573bab1: Pulling fs layer
2021-03-14T16:04:21.6966632Z 06a0f34100cd: Pulling fs layer
2021-03-14T16:04:21.6967110Z 06a0f34100cd: Waiting
2021-03-14T16:04:21.6967633Z f62e9573bab1: Verifying Checksum
2021-03-14T16:04:21.6968295Z f62e9573bab1: Download complete
2021-03-14T16:04:21.6968871Z 66fca843054b: Verifying Checksum
2021-03-14T16:04:21.6969544Z 66fca843054b: Download complete
2021-03-14T16:04:21.6970079Z 188c0c94c7c5: Verifying Checksum
2021-03-14T16:04:21.6970589Z 188c0c94c7c5: Download complete
2021-03-14T16:04:21.6971347Z 06a0f34100cd: Verifying Checksum
2021-03-14T16:04:21.6971878Z 06a0f34100cd: Download complete
2021-03-14T16:04:22.0484952Z 188c0c94c7c5: Pull complete
2021-03-14T16:04:22.2702074Z 66fca843054b: Pull complete
2021-03-14T16:04:22.3773889Z f62e9573bab1: Pull complete
2021-03-14T16:04:22.6271473Z 06a0f34100cd: Pull complete
2021-03-14T16:04:22.6379226Z Digest: sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2021-03-14T16:04:22.6402600Z Status: Downloaded newer image for appleboy/drone-ssh:1.6.3-linux-amd64
2021-03-14T16:04:22.6418359Z ---> 47f94d42e479
2021-03-14T16:04:22.6422631Z Step 2/4 : COPY entrypoint.sh /entrypoint.sh
2021-03-14T16:04:23.2992272Z ---> 894dff86e37f
2021-03-14T16:04:23.3137154Z Step 3/4 : RUN chmod +x /entrypoint.sh
2021-03-14T16:04:23.3492501Z ---> Running in 8b348a5718bd
2021-03-14T16:04:25.0149456Z Removing intermediate container 8b348a5718bd
2021-03-14T16:04:25.0167277Z ---> 2bc40f78951d
2021-03-14T16:04:25.0168110Z Step 4/4 : ENTRYPOINT ["/entrypoint.sh"]
2021-03-14T16:04:25.0374209Z ---> Running in be0a69eed1dc
2021-03-14T16:04:26.0155734Z Removing intermediate container be0a69eed1dc
2021-03-14T16:04:26.0157218Z ---> e08d3462082b
2021-03-14T16:04:26.0218123Z Successfully built e08d3462082b
2021-03-14T16:04:26.0355661Z Successfully tagged 5588e4:46e0c05d2f1c4fbf93b7f69ca6a2f1b5
2021-03-14T16:04:26.0368493Z ##[endgroup]
2021-03-14T16:04:26.0761189Z ##[group]Run actions/checkout@v2
2021-03-14T16:04:26.0761944Z with:
2021-03-14T16:04:26.0763619Z token: ***
2021-03-14T16:04:26.0764261Z repository: myUser/myProject
2021-03-14T16:04:26.0764899Z ssh-strict: true
2021-03-14T16:04:26.0765450Z persist-credentials: true
2021-03-14T16:04:26.0765987Z clean: true
2021-03-14T16:04:26.0766410Z fetch-depth: 1
2021-03-14T16:04:26.0766837Z lfs: false
2021-03-14T16:04:26.0767254Z submodules: false
2021-03-14T16:04:26.0767708Z ##[endgroup]
2021-03-14T16:04:26.5724570Z Syncing repository: myUser/myProject
2021-03-14T16:04:26.5725598Z ##[group]Getting Git version info
2021-03-14T16:04:26.5726878Z Working directory is '/home/runner/work/myProject/myProject'
2021-03-14T16:04:26.5728059Z [command]/usr/bin/git version
2021-03-14T16:04:26.5892765Z git version 2.30.1
2021-03-14T16:04:26.5894282Z ##[endgroup]
2021-03-14T16:04:26.5903587Z Deleting the contents of '/home/runner/work/myProject/myProject'
2021-03-14T16:04:26.5905407Z ##[group]Initializing the repository
2021-03-14T16:04:26.5909187Z [command]/usr/bin/git init /home/runner/work/myProject/myProject
2021-03-14T16:04:26.6029092Z hint: Using 'master' as the name for the initial branch. This default branch name
2021-03-14T16:04:26.6030401Z hint: is subject to change. To configure the initial branch name to use in all
2021-03-14T16:04:26.6031533Z hint: of your new repositories, which will suppress this warning, call:
2021-03-14T16:04:26.6032386Z hint:
2021-03-14T16:04:26.6033943Z hint: git config --global init.defaultBranch <name>
2021-03-14T16:04:26.6034638Z hint:
2021-03-14T16:04:26.6035442Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2021-03-14T16:04:26.6036651Z hint: 'development'. The just-created branch can be renamed via this command:
2021-03-14T16:04:26.6037336Z hint:
2021-03-14T16:04:26.6037909Z hint: git branch -m <name>
2021-03-14T16:04:26.6041711Z Initialized empty Git repository in /home/runner/work/myProject/myProject/.git/
2021-03-14T16:04:26.6053565Z [command]/usr/bin/git remote add origin https://github.com/myUser/myProject
2021-03-14T16:04:26.6112480Z ##[endgroup]
2021-03-14T16:04:26.6113335Z ##[group]Disabling automatic garbage collection
2021-03-14T16:04:26.6121163Z [command]/usr/bin/git config --local gc.auto 0
2021-03-14T16:04:26.6165369Z ##[endgroup]
2021-03-14T16:04:26.6176967Z ##[group]Setting up auth
2021-03-14T16:04:26.6187245Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2021-03-14T16:04:26.6246287Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
2021-03-14T16:04:26.6900209Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2021-03-14T16:04:26.6940390Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
2021-03-14T16:04:26.7216178Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2021-03-14T16:04:26.7266677Z ##[endgroup]
2021-03-14T16:04:26.7268826Z ##[group]Fetching the repository
2021-03-14T16:04:26.7277912Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +ea9bc17ea94e3e6c966f65eadaab92e81b90346c:refs/remotes/origin/production
2021-03-14T16:04:27.4292763Z remote: Enumerating objects: 2050, done.
2021-03-14T16:04:27.5051531Z remote: Counting objects: 100% (2050/2050), done.
2021-03-14T16:04:27.6195514Z remote: Compressing objects: 100% (1621/1621), done.
2021-03-14T16:04:28.5762484Z Receiving objects: 100% (2050/2050), 2.44 MiB | 4.84 MiB/s
2021-03-14T16:04:28.5763176Z Receiving objects: 100% (2050/2050), 13.82 MiB | 14.48 MiB/s, done.
2021-03-14T16:04:28.6012285Z Resolving deltas: 100% (469/469)
2021-03-14T16:04:28.6012872Z Resolving deltas: 100% (469/469), done.
2021-03-14T16:04:28.8206899Z From https://github.com/myUser/myProject
2021-03-14T16:04:28.8208438Z * [new ref] ea9bc17ea94e3e6c966f65eadaab92e81b90346c -> origin/production
2021-03-14T16:04:28.8229099Z ##[endgroup]
2021-03-14T16:04:28.8229852Z ##[group]Determining the checkout info
2021-03-14T16:04:28.8232088Z ##[endgroup]
2021-03-14T16:04:28.8232766Z ##[group]Checking out the ref
2021-03-14T16:04:28.8236775Z [command]/usr/bin/git checkout --progress --force -B production refs/remotes/origin/production
2021-03-14T16:04:28.9951267Z Switched to a new branch 'production'
2021-03-14T16:04:28.9952452Z Branch 'production' set up to track remote branch 'production' from 'origin'.
2021-03-14T16:04:28.9961000Z ##[endgroup]
2021-03-14T16:04:29.0014527Z [command]/usr/bin/git log -1 --format='%H'
2021-03-14T16:04:29.0046451Z 'ea9bc17ea94e3e6c966f65eadaab92e81b90346c'
2021-03-14T16:04:29.0162817Z ##[group]Run git config --local user.email "action@github.com"
2021-03-14T16:04:29.0163849Z [36;1mgit config --local user.email "action@github.com"[0m
2021-03-14T16:04:29.0164730Z [36;1mgit config --local user.name "GitHub Action"[0m
2021-03-14T16:04:29.0165375Z [36;1mgit checkout -B deploy[0m
2021-03-14T16:04:29.0165987Z [36;1mgit add -f public/[0m
2021-03-14T16:04:29.0166580Z [36;1mgit commit -m "Build front-end assets"[0m
2021-03-14T16:04:29.0167255Z [36;1mgit push -f origin deploy[0m
2021-03-14T16:04:29.0215326Z shell: /usr/bin/bash -e {0}
2021-03-14T16:04:29.0215807Z ##[endgroup]
2021-03-14T16:04:29.3153383Z Switched to a new branch 'deploy'
2021-03-14T16:04:29.3313550Z On branch deploy
2021-03-14T16:04:29.3316648Z nothing to commit, working tree clean
2021-03-14T16:04:29.3381472Z ##[error]Process completed with exit code 1.
2021-03-14T16:04:29.3653154Z Post job cleanup.
2021-03-14T16:04:29.4723616Z [command]/usr/bin/git version
2021-03-14T16:04:29.4777037Z git version 2.30.1
2021-03-14T16:04:29.4815499Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2021-03-14T16:04:29.4854852Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
2021-03-14T16:04:29.5117676Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2021-03-14T16:04:29.5149269Z http.https://github.com/.extraheader
2021-03-14T16:04:29.5160054Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2021-03-14T16:04:29.5197186Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
2021-03-14T16:04:29.5497217Z Cleaning up orphan processes
目前,我的生产分支没有提交任何内容,因为生产操作没有开始。
任何建议我做错了什么?
为什么我会收到这个错误?
我非常感谢您的回复!

最佳答案

Why do I get this error?


明确地说,“这个错误”是:
2021-03-14T16:04:29.3381472Z ##[error]Process completed with exit code 1.

完成的过程是shell:
2021-03-14T16:04:29.0215326Z shell: /usr/bin/bash -e {0}

在脚本中运行一些命令;显然,这些命令之一必须以状态代码 1(“通用故障”)退出,这导致 bash -e也以状态码 1 退出。
我们可以看到每个命令的输出,因此我们可以根据知道哪些命令打印哪些内容,将每个命令与其输出相关联。这是脚本:
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git checkout -B deploy
git add -f public/
git commit -m "Build front-end assets"
git push -f origin deploy

(我取出了变色的 ESC [ ... m 序列,因为它们只是碍手碍脚,并去掉了时间戳,因为它们并不真正相关。)您应该认识到这些命令:它们是您在YAML 文件。
以下是每个命令的输出:
Switched to a new branch 'deploy'
On branch deploy
nothing to commit, working tree clean

现在, git config通常不打印任何内容,因此两个 git config s 可能成功了,因为我们看到打印了一些东西(第一行)。我们看到打印的是 Switched to a new branch 'deploy' .
这正是第三个命令, git checkout -B deploy , 将在成功时打印。所以我们一定已经达到了第三个命令,它成功了。这将让我们继续第四个命令, git add -f public/ . git add命令通常不打印任何内容。所以我们现在不能确定它是否有效,但我们确实看到了进一步的输出,从 On branch ... 开始。 .这绝对不是来自 git add ,所以大概 git add成功了,这将让我们继续执行第五个命令, git commit -m [message] .这个命令会在成功和失败时打印一些东西:成功时我们会收到一条消息,显示新提交的缩写哈希 ID,失败时我们得到 git status输出:
$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
$ git commit -m test
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
这实际上是一种失败:没有任何东西可以提交,所以 Git 不会进行新的提交。为什么没有什么可提交的?因为 Git 的索引匹配当前 ( HEAD ) 提交。即, git add -f public/更新没有文件。要么 public/为空,或者里面的文件 public/匹配 HEAD 中的那些犯罪。
如果我们从 git commit 检查实际退出状态以这种方式失败,它是1:
$ echo $?
1
所以 git commit命令是失败的那个,它失败是因为没有新的东西可以提交。
您有多种选择如何继续:
  • 弄清楚为什么没有任何东西可以提交,当你清楚地期望有一些东西可以提交时。
  • 检查是否有任何要提交的内容,如果没有,则什么都不提交。
  • 使用 git commit --allow-empty指示 Git 进行新的提交,即使不需要新的提交。 (这样做的优点是非常简单。)
  • 强行假设git commit即使失败也能成功,通过使用 (cmd || true)构造,就像你在这里做的一样:
    (git push) || true


  • 我将这些按不良程度增加的大致顺序排列,尽管其中一些是意见/判断问题。
    请注意,在诊断某个脚本的故障时,如果脚本中的哪个命令失败了不是很明显,则有几种方法可以提供帮助。例如,在这里,很明显 git commit失败,因为只有 git commit最终表现得像 git status ,并且它会在失败并显示“无提交”消息时准确地执行此操作。但是,如果是其他一些更模棱两可的失败呢?可以通过添加 echo 来缩小这些故障的范围。命令,以便我们知道脚本的哪些部分正在运行。或者,如果它不会过多地干扰其他事情,我们可以 set -x在 bash 脚本中:这会导致 shell 打印出标准错误输出 +它实际运行的每个命令的行,就在运行它之前。这将立即将退出状态固定到生成它的命令。

    关于bash - Github 操作 - 错误 : Process completed with exit code 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66626814/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com