doc: update github-actions.md #170
This commit is contained in:
parent
9751df06b9
commit
fe7782a0c4
@ -27,7 +27,7 @@ Quick Reference
|
|||||||
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
||||||
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
||||||
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
||||||
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);-->
|
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);&class=contributing-->
|
||||||
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
||||||
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
||||||
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=contributing tag&data-lang=SQL-->
|
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=contributing tag&data-lang=SQL-->
|
||||||
|
@ -924,8 +924,273 @@ steps:
|
|||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
当 `npm` 推送包失败不影响整个流程,可用于自动发包
|
||||||
|
|
||||||
|
GitLab CI/CD 迁移到 GitHub Actions
|
||||||
|
---
|
||||||
|
|
||||||
|
### 语法示例
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
job1:
|
||||||
|
variables:
|
||||||
|
GIT_CHECKOUT: "true"
|
||||||
|
script:
|
||||||
|
- echo "Run your script here"
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
job1:
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: echo "Run your script here"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 运行程序
|
||||||
|
<!--rehype:wrap-class=row-span-2-->
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
windows_job:
|
||||||
|
tags:
|
||||||
|
- windows
|
||||||
|
script:
|
||||||
|
- echo Hello, %USERNAME%!
|
||||||
|
|
||||||
|
linux_job: tags:
|
||||||
|
- linux script:
|
||||||
|
- echo "Hello, $USER!"
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
windows_job:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- run: echo Hello, %USERNAME%!
|
||||||
|
|
||||||
|
linux_job:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "Hello, $USER!"
|
||||||
|
```
|
||||||
|
|
||||||
|
在不同的平台上运行作业
|
||||||
|
|
||||||
|
### Docker 映像
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
my_job:
|
||||||
|
image: node:10.16-jessie
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
my_job:
|
||||||
|
container: node:10.16-jessie
|
||||||
|
```
|
||||||
|
|
||||||
|
### 条件和表达式语法
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
deploy_prod:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- echo "部署到生产服务器"
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
deploy_prod:
|
||||||
|
if: contains( github.ref, 'master')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "部署到生产服务器"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Artifacts
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
script:
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- math-homework.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- name: Upload math result for job 1
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: homework
|
||||||
|
path: math-homework.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### 作业之间的依赖关系
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
build_a: stage: build script:
|
||||||
|
- echo "该作业将首先运行"
|
||||||
|
|
||||||
|
build_b: stage: build script:
|
||||||
|
- echo "该作业将首先运行,与 build_a 并行"
|
||||||
|
|
||||||
|
test_ab: stage: test script:
|
||||||
|
- echo "此作业将在 build_a 和 build_b 完成后运行"
|
||||||
|
|
||||||
|
deploy_ab: stage: deploy script:
|
||||||
|
- echo "此作业将在 test_ab 完成后运行"
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
build_a:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "该作业将首先运行"
|
||||||
|
|
||||||
|
build_b:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "该作业将首先运行,与 build_a 并行"
|
||||||
|
|
||||||
|
test_ab:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build_a,build_b]
|
||||||
|
steps:
|
||||||
|
- run: echo "此作业将在 build_a 和 build_b 完成后运行"
|
||||||
|
|
||||||
|
deploy_ab:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [test_ab]
|
||||||
|
steps:
|
||||||
|
- run: echo "此作业将在 test_ab 完成后运行"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 缓存
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
image: node:latest
|
||||||
|
|
||||||
|
cache: key: $CI_COMMIT_REF_SLUG paths:
|
||||||
|
- .npm/
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline
|
||||||
|
|
||||||
|
test_async: script:
|
||||||
|
- node ./specs/start.js ./specs/async.spec.js
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
test_async:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Cache node modules
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.npm
|
||||||
|
key: v1-npm-deps-${{ hashFiles('**/package-lock.json') }}
|
||||||
|
restore-keys: v1-npm-deps-
|
||||||
|
```
|
||||||
|
|
||||||
|
### 数据库和服务容器
|
||||||
|
|
||||||
|
<yel>GitLab CI/CD</yel>
|
||||||
|
|
||||||
|
```yml
|
||||||
|
container-job:
|
||||||
|
variables:
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
# PostgreSQL 服务容器通信的主机名
|
||||||
|
POSTGRES_HOST: postgres
|
||||||
|
# 默认的 PostgreSQL 端口
|
||||||
|
POSTGRES_PORT: 5432
|
||||||
|
image: node:10.18-jessie
|
||||||
|
services:
|
||||||
|
- postgres
|
||||||
|
script:
|
||||||
|
# 执行 package.json 文件中
|
||||||
|
# 所有依赖项的全新安装
|
||||||
|
- npm ci
|
||||||
|
# 运行创建 PostgreSQL 客户端的脚本,
|
||||||
|
# 用数据填充客户端,并检索数据
|
||||||
|
- node client.js
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
```
|
||||||
|
|
||||||
|
GitHub Actions
|
||||||
|
|
||||||
|
```yml
|
||||||
|
jobs:
|
||||||
|
container-job:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: node:10.18-jessie
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres
|
||||||
|
env:
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# 执行 package.json 文件中
|
||||||
|
# 所有依赖项的全新安装
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Connect to PostgreSQL
|
||||||
|
# 运行创建 PostgreSQL 客户端的脚本,
|
||||||
|
# 用数据填充客户端,并检索数据
|
||||||
|
run: node client.js
|
||||||
|
env:
|
||||||
|
# PostgreSQL 服务容器通信的主机名
|
||||||
|
POSTGRES_HOST: postgres
|
||||||
|
# 默认的 PostgreSQL 端口
|
||||||
|
POSTGRES_PORT: 5432
|
||||||
|
```
|
||||||
|
|
||||||
另见
|
另见
|
||||||
---
|
---
|
||||||
|
|
||||||
- [Github Actions 学习笔记](https://jaywcjlove.github.io/github-actions) _(jaywcjlove.github.io)_
|
- [Github Actions 学习笔记](https://jaywcjlove.github.io/github-actions) _(jaywcjlove.github.io)_
|
||||||
- [了解 GitHub Actions](https://docs.github.com/cn/actions/learn-github-actions) _(docs.github.com)_
|
- [了解 GitHub Actions](https://docs.github.com/cn/actions/learn-github-actions) _(docs.github.com)_
|
||||||
|
- [从 GitLab CI/CD 迁移到 GitHub Actions](https://docs.github.com/cn/actions/migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions) _(docs.github.com)_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user