我在编写EasyGitTool相关的CI的时候,我找了很多的与GitHub Actions有关的技术文档,但我认为为了不要让我在这样找,我决定以写一篇文章来记录这些事情。
发布到Pypi
基本步骤
- name: Install dependencies
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 }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
在加了tag后才发布
在每一个- name:
后加上if: startsWith(github.ref, 'refs/tags/')
- name: Install dependencies
if: startsWith(github.ref, 'refs/tags/')
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
if: startsWith(github.ref, 'refs/tags/')
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
自动化写版本号
你可以建一个通过echo命令建立一个ver.py
,但是在setup.py
在前面import ver
,然后version = ver.ver文件内声明的变量
,像下面那样
from setuptools import setup, find_packages
import ver
setup(
name = "你的项目名",
version = ver.ver,
long_description = "你的项目的概述",
license = "你的项目的开源许可证",
url = "你的项目的网站",
author = "作者名",
packages = find_packages(),
include_package_data = True,
platforms = "你的项目支持的平台",
install_requires = [],
keywords=["你的项目的关键词"],
scripts = []
)
ver.py
要与setup.py
在同一目录内!
- name: Install dependencies
if: startsWith(github.ref, 'refs/tags/')
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
if: startsWith(github.ref, 'refs/tags/')
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
echo 'ver = "V0.'${{ github.run_id }}'.dev"'>ver.py
python setup.py sdist bdist_wheel
twine upload dist/*
发布GitHub Release
手动写版本号
- name: Create Release and Upload Release Asset
uses: softprops/action-gh-release@v1
with:
tag_name: V0.1 # 你也可以将其输入为V1.2……
name: V0.1 # 你也可以将其输入为V1.2……
body: TODO New Release.
draft: false # 是否是草稿
prerelease: true # 是否是预览版
files: |
# 你要上传的文件
自动化写版本号
- name: Create Release and Upload Release Asset
uses: softprops/action-gh-release@v1
with:
tag_name: V0.${{ github.run_id }}.dev
name: V0.${{ github.run_id }}.dev
body: TODO New Release.
draft: false # 是否是草稿
prerelease: true # 是否是预览版
files: |
# 你要上传的文件
在加了tag后才发布
在每一个- name:
后加上if: startsWith(github.ref, 'refs/tags/')
- name: Create Release and Upload Release Asset
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
tag_name: V0.${{ github.run_id }}.dev
name: V0.${{ github.run_id }}.dev
body: TODO New Release.
draft: false # 是否是草稿
prerelease: true # 是否是预览版
files: |
# 你要上传的文件
语法 | 描述 |
---|---|
${{ github.run_id }} | 运行身份标识(就是一堆纯数字) |
github.ref | 当前分支名称(但必须要用“refs/tags/”或“refs/heads/main”) |
重命名
重命名这部分,我原本不想写的,但就是这部分浪费了我一个小时的时间(主要是GitHub Actions构建速度有些慢)。当时,我原本是要rename来去完成这个东西,谁知道CI报错了,到后面我找了一些资料才知道——原来用mv是可以的。那我之前搞了那么一个小时真的是浪费了😭。
所以当我们要重命名文件的时候,只要用mv 原来的文件名 你想要的文件名
就可以了。