以下示例性工作流运行时没有问题:
on: [push]
jobs:
create_release:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create release
run: hub release create -m "$(date)" "v$(date +%s)"
但是,我的一些CI/CD代码需要在容器中运行:
on: [push]
jobs:
create_release:
runs-on: ubuntu-latest
container:
image: ubuntu:latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Install dependencies
run: apt update && apt install -y git hub
- name: Checkout
uses: actions/checkout@v2
- name: Create release
run: hub release create -m "$(date)" "v$(date +%s)"
现在,hub
突然不再工作了:
Run hub release create -m "$(date)" "v$(date +%s)"
hub release create -m "$(date)" "v$(date +%s)"
shell: sh -e {0}
env:
GITHUB_TOKEN: ***
Error creating release: Unauthorized (HTTP 401)
Bad credentials
Error: Process completed with exit code 1.
发布于 2021-01-27 18:03:46
问题实际上是版本不匹配:本地ubuntu-latest
GitHub操作上的hub
是(到目前为止)最新的版本2.14.2,而ubuntu:latest
容器上的apt install
只安装了版本2.7.0 (从2018年12月28日开始!)。
解决方案是直接从他们的hub
发布页面安装最新的GitHub二进制文件,而不是使用apt
on: [push]
jobs:
create_release:
runs-on: ubuntu-latest
container:
image: ubuntu:latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Install dependencies
run: |
apt update && apt install -y git wget
url="$(wget -qO- https://api.github.com/repos/github/hub/releases/latest | tr '"' '\n' | grep '.*/download/.*/hub-linux-amd64-.*.tgz')"
wget -qO- "$url" | tar -xzvf- -C /usr/bin --strip-components=2 --wildcards "*/bin/hub"
- name: Checkout
uses: actions/checkout@v2
- name: Create release
run: hub release create -m "$(date)" "v$(date +%s)"
https://stackoverflow.com/questions/65894993
复制相似问题