# Github actions
- 获取打包的id,用作 docker tag
$GITHUB_RUN_NUMBER
- 模糊匹配分支名
branch
- feature**
- 打印相关参数
echo ${{ toJson(github) }}
- 条件判断 用于不同分支进行打包
if: contains(github.ref, 'master')
if: ${{ startsWith(github.ref, 'feature') || endsWith(github.event.head_commit.message, 'build') }}
- 动态写入环境变量
echo "BUILD_ENV=test" >> $GITHUB_ENV
echo "$( echo ${GITHUB_REF##*/} )" >> $GITHUB_ENV
- 仓库包含子模块,需要设置token
- uses: actions/checkout@v2
with:
submodules: true
token: ${{ secrets.REPO_TOKEN }}
- 匹配tag
on:
push:
tags:
- '*'
- github参数中有用的信息
github.ref: #当前 分支信息,如果为标签,则为具体标签数字
github.event.head_commit: #当前提交信息
github.event_name: #当前提交事件,如push, pull_request
- 提交不进行打包
- 默认每次提交都会进行打包,可以在 commit msg中的body添加
[skip ci]
来过滤这次打包 - 或者在触发条件下设置模糊匹配分支
- 设置TAG,根据 TAG 触发进行打包
- 写入环境变量
第一种,全局,所有 step 均可访问到
jobs:
build:
env:
NODE_ENV: "production"
CI: true
BASE_URL: "/prod"
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
第二种,特定 steps
- name: "Build test env"
- run: yarn build:test
- env:
NODE_ENV: "production"
BASE_URL: "/dev"