diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml new file mode 100644 index 0000000..d911513 --- /dev/null +++ b/.github/workflows/cicd.yml @@ -0,0 +1,71 @@ +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: 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 # 一个包