Git 从 git 操作容器推送时,推送操作不起作用
Git push action is not working when pushing from git action container
我在 master 分支上有一个动作,它在 push/merge 上构建一个包,将其上传到 PyPI,然后签出开发分支,在开发分支中更新版本并推送到开发分支的起源。 Develop 分支有一个监听 push/merge 并做快照发布的动作。
当我推送 develop 操作时,开发操作完美运行并执行快照发布,但是当 master 分支推送时,推送成功 但操作不会被触发。我错过了什么?
下面添加了这两个操作。
name: Build and Upload Package to PyPI | Master Branch
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.5'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install GitPython
pip install bumpversion
- name: Strip 'snapshot' from version
run: sed -i 's/-snapshot//g' setup.py
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
TWINE_REPOSITORY_URL: https://pypi.domain.com
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
- name: Bump Verison and Push to develop
run: |
git stash
git config --local user.email "name@email.com"
git config --local user.name "username"
git checkout develop
python bump_version.py
cat .bumpversion.cfg
git remote set-url --push origin https://username:$GITHUB_TOKEN@github.com/repo/path
git push origin develop
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Build and Upload Package to PyPI | Develop Branch
on:
push:
branches:
- develop
jobs:
bumpTag_build_and_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.5'
- name: Install dependencies for setup
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
TWINE_REPOSITORY_URL: https://pypi.domain.co,
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
前提是secrets.GITHUB_TOKEN
有意不允许触发工作流程。如 documention 所示:
(...) if an action pushes code using the repository's GITHUB_TOKEN
, a new workflow will not run even when the repository contains a workflow configured to run when push events occur.
如果您需要通过工作流将您的自动推送 "visible",您需要创建 Personal Access Token, add it to repo secrets,并使用它代替 GITHUB_TOKEN
。
请注意,如果您使用非股票代币,GitHub 假设您知道自己在做什么 - 这意味着您可以防止可能的无限循环。虽然在您的场景中现在(开发分支不会推送任何东西)不是这种情况,但值得记住的是,以防其中一个工作流程有一天会发生变化。
我在 master 分支上有一个动作,它在 push/merge 上构建一个包,将其上传到 PyPI,然后签出开发分支,在开发分支中更新版本并推送到开发分支的起源。 Develop 分支有一个监听 push/merge 并做快照发布的动作。 当我推送 develop 操作时,开发操作完美运行并执行快照发布,但是当 master 分支推送时,推送成功 但操作不会被触发。我错过了什么? 下面添加了这两个操作。
name: Build and Upload Package to PyPI | Master Branch
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.5'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install GitPython
pip install bumpversion
- name: Strip 'snapshot' from version
run: sed -i 's/-snapshot//g' setup.py
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
TWINE_REPOSITORY_URL: https://pypi.domain.com
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
- name: Bump Verison and Push to develop
run: |
git stash
git config --local user.email "name@email.com"
git config --local user.name "username"
git checkout develop
python bump_version.py
cat .bumpversion.cfg
git remote set-url --push origin https://username:$GITHUB_TOKEN@github.com/repo/path
git push origin develop
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Build and Upload Package to PyPI | Develop Branch
on:
push:
branches:
- develop
jobs:
bumpTag_build_and_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.5'
- name: Install dependencies for setup
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
TWINE_REPOSITORY_URL: https://pypi.domain.co,
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
前提是secrets.GITHUB_TOKEN
有意不允许触发工作流程。如 documention 所示:
(...) if an action pushes code using the repository's
GITHUB_TOKEN
, a new workflow will not run even when the repository contains a workflow configured to run when push events occur.
如果您需要通过工作流将您的自动推送 "visible",您需要创建 Personal Access Token, add it to repo secrets,并使用它代替 GITHUB_TOKEN
。
请注意,如果您使用非股票代币,GitHub 假设您知道自己在做什么 - 这意味着您可以防止可能的无限循环。虽然在您的场景中现在(开发分支不会推送任何东西)不是这种情况,但值得记住的是,以防其中一个工作流程有一天会发生变化。