AutoCommit/.github/workflows/cicd.yml

74 lines
2.7 KiB
YAML

name: vscode plugin cd # github 持续集成 持续部署
# github会默认执行 .github/workflows/**.yml 文件
on:
push: # 触发workflow的条件
tags:
- "v*"
jobs:
build:
name: My Job
runs-on: macOS-latest # cicd的运行环境
# 获取node
strategy:
matrix:
node-version: [12.x]
steps:
- name: Checkout source
uses: actions/checkout@master # 获得仓库的代码
# 缓存node modules https://docs.github.com/cn/free-pro-team@latest/actions/guides/caching-dependencies-to-speed-up-workflows
- name: Cache node modules
uses: actions/cache@v2 # 缓存插件
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 }}-
- name: Set output
id: vars
# github.ref的值是: refs/tags/v0.0.13
# 取值到0.0.13 这样可以灵活的取打包的版本号
run: echo ::set-output name=tag::${GITHUB_REF:11}
- name: set env
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
run: |
echo $RELEASE_VERSION
echo ${{ steps.vars.outputs.tag }} ${{ env.RELEASE_VERSION }} ${{ github.ref }}
- name: use node
id: use_node
uses: actions/setup-node@v1 # 获得node
with:
node-version: ${{ matrix.node-version }}
- name: Create Release
id: create_release
uses: actions/create-release@v1 # 使用创建release插件
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }} # 版本名字
draft: false
prerelease: false
# - run: npm i -g vsce # 安装vsce 用于打包插件
# - run: npm install # 安装依赖
- run: yarn global add vsce # 安装vsce 用于打包插件
- run: yarn # 安装依赖
- run: vsce package --yarn # 打包插件
- run: ls
# 上传插件包
- name: Upload Release Asset
uses: actions/upload-release-asset@v1.0.2 # 使用上传资源的插件
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # github token
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 默认上传地址
asset_path: ./autoCommit-${{ steps.vars.outputs.tag }}.vsix # 需要上传的资源
asset_name: autoCommit-${{ steps.vars.outputs.tag }}.vsix # 更改资源名
asset_content_type: application # 一个包