github 中 action 使用
GitHub Actions GitHub 推出的持续集成服务,GitHub 把抓取代码/测试/登录远程服务器/发布/部署项目等操作称之为 actions。
关于 GITHUB_TOKEN
在每个工作流作业开始时,GitHub 会自动创建唯一的 GITHUB_TOKEN 机密以在工作流中使用。 可以使用 GITHUB_TOKEN 在工作流作业中进行身份验证。令牌的权限仅限于包含您的工作流程的仓库。
管理个人访问令牌
使用 GitHub API 或命令行时,可使用 Personal access token 替代密码向 GitHub 进行身份验证。
部署代码到另一个仓库(以 vitepress 为例)
yml
name: Deploy
on:
push:
branches: ['main']
jobs:
build:
env:
DIST: docs/.vitepress/dist
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: npm i && npm run build
- name: Commit
run: |
cd ${{env.DIST}}
git init
git checkout -b dist
git config --local user.email "xxx"
git config --local user.name "xxx"
git add .
git commit -a -m "auto deploy"
- name: Deploy
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.PUSH_TOKEN }}
repository: xxx
force: true
branch: xxx
directory: ${{env.DIST}}问题
如何避免每次 npm 都安装依赖
使用 cache 操作将尝试根据你提供 key 的还原缓存。当操作找到与键完全匹配的缓存时,该操作会将缓存的文件还原到你配置的 path。 可以选择提供在 key 与现有缓存不匹配时要使用的 restore-keys 列表。
cache 操作的输入参数:
- key:必要。保存缓存时创建的密钥和用于搜索缓存的密钥。 它可以是变量、上下文值、静态字符串和函数的任何组合。 密钥最大长度为 512 个字符,密钥长度超过最大长度将导致操作失败。
- path:必要。运行器上用于缓存或还原的路径。
- restore-keys:可选。包含备用还原键的字符串,每个还原键均放置在一个新行上。 如果 key 没有发生缓存命中,则按照提供的顺序依次使用这些还原键来查找和还原缓存。
使用 cache 操作的示例
yaml
name: Caching with npm
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Test
run: npm test