GitHub
GitHub
profile README
github 个人主页介绍可通过配置一个仓库名和用户名相同中的 README.md 来生成.
开发者可以通过工具 markscribe
参考示例如下:
GitHub CI/CD
links:
variables and secrets
links:
-
https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions
-
https://docs.github.com/en/actions/learn-github-actions/variables
常用变量
-
- github.ref_name
if: ${{ github.ref_name == 'main' }}
- github.ref
if: startsWith(github.ref, 'refs/tags')
- github.event.repository.default_branch
if: ${{ github.ref_name == github.event.repository.default_branch }}
- github.ref_name
continue on error
在上一个 step 失败后继续执行下一步 step
1 | jobs: |
在此示例中,步骤 1 将失败,因为它使用 exit 1 退出时带有错误代码。但是,步骤 2 具有 continue-on-error: true 属性,这意味着即使步骤 1 失败,它也将继续运行。如果步骤 1 或步骤 2 失败,步骤 3 将不会运行。
links:
call workflow
workflow_call 是 GitHub Actions 中的一个关键字,它允许在一个工作流中调用另一个工作流。这个功能在 GitHub Actions 中是相对较新的,它可以帮助更好地组织和复用 CI/CD 代码。
links:
act
act 用于本地测试 GitHub Action 管道,避免频繁推送到远程测试 CI 流程。
手动安装需要各个平台安装工具
1 | # bash |
通过 devcontainer feature 支持 act
[!TIP]
建议在 vscode devcontainer 配置 dind 进行测试。
1 | "features": { |
常用命令
1 | # 列出 actions jobs/workflows |
actions
links:
action token
Actions 的 TOKEN 认证有 GITHUB_TOKEN, PERSONAL_TOKEN
-
GITHUB_TOKEN: 是 GitHub 提供的一种特殊类型的令牌,用于对 GitHub API 进行身份验证和授权。它主要用于执行与 GitHub 相关的操作,例如创建和管理存储库、发布问题和拉取请求等。
- 默认没有 workflow 权限
-
PERSONAL_TOKEN: 是用户自己生成的令牌,用于对 GitHub 进行身份验证和授权。它可以用于执行与 GitHub API 相关的操作,但权限范围可能会受到限制,取决于用户在生成令牌时所选择的权限。
- 可手动设置 workflow 权限,参考
总结来说,GITHUB_TOKEN 是由 GitHub 提供的特殊令牌,用于对 GitHub API 进行身份验证和授权,而 PERSONAL_TOKEN 是用户自己生成的令牌,也用于对 GitHub 进行身份验证和授权,但权限可能会受到限制。
dependabot
Dependabot 是一个自动化的依赖更新工具,它可以帮助保持项目中的依赖库和组件的最新版本。它可以扫描项目的依赖关系,并自动检测是否有新版本可用。如果有新版本可用,Dependabot 会自动创建一个拉取请求(Pull Request)来更新依赖库。
为项目配置 Dependabot 的步骤如下:
-
在项目的代码仓库中,创建一个名为.github 的文件夹(如果还没有的话)。
-
在.github 文件夹中创建一个名为 dependabot.yml 的文件。
-
在 dependabot.yml 文件中,使用 YAML 格式来配置 Dependabot 的行为。
下面是一个示例的 dependabot.yml 文件的内容:
1 | version: 2 |
在这个示例中,配置了一个更新规则,用于更新 GitHub Actions 的依赖库。具体的配置可以根据项目和需求进行调整。
-
将 dependabot.yml 文件提交到代码仓库中。
一旦配置完成并提交到代码仓库,Dependabot 将会根据配置自动检查并更新项目中的依赖库。可以根据需要调整配置,例如更改更新的频率、指定特定的依赖库等。
请注意,Dependabot 支持多种不同的依赖管理工具和生态系统,可以根据项目使用的工具进行相应的配置。详细的配置选项和示例可以在 Dependabot 的官方文档中找到。
action dev
links:
common actions
这里收集了常用到的 action
links:
dockerhub/ghcr
docker/login-action@v2 example
1 | steps: |
Sync images from dockerhub to ghcr example
1 | steps: |
actions/checkout
在 action 中迁出代码
参考示例:
links:
yesolutions/mirror-action
仓库镜像同步
参考示例:
links:
devcontainers/ci
使基于 devcontainer 的项目,能够在 devcontainer 环境下构建镜像,CI 测试等其它操作.
使用文档:
-
https://github.com/devcontainers/ci/blob/main/docs/github-action.md
-
https://github.com/devcontainers/ci/blob/main/docs/multi-platform-builds.md
参考示例:
links:
pre-commit/action
基于 pre-commit 对代码执行检测
参考示例:
links:
stefanzweifel/git-auto-commit-action
检测本地更改,并提交记录到当前分支上
参考示例:
links:
peter-evans/create-pull-request
集成创建 pr
参考示例:
links:
dorny/paths-filter
监测路径更改并反馈变化
[!NOTE]
当检测前面步骤是否出现改动时,需要对 dorny/paths-filter 配置 id, 然后在后续步骤使用具体 id 中是否出现改动进行判断.
参考示例:
-
https://github.com/msclock/gitlab-ci-templates/tree/main/.github
-
https://github.com/rocker-org/devcontainer-features/blob/main/.github
-
https://github.com/devcontainers-contrib/features/blob/main/.github
links:
cycjimmy/semantic-release-action
标记代码版本,创建 tag 及 release
links:
pypa/gh-action-pypi-publish
发布 python 包到 pypi
links:
actions/stale
将 issue 和 pr 标记为 stale
links:
hynek/build-and-inspect-python-package
在 CI 中构建和检查 Python 包
links:
rossjrw/pr-preview-action
在 CI 的 PR 上创建 Pages 预览
links:
hmarr/auto-approve-action
自动批准 pr
links: