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 # 一个包