diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ae431e9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,44 @@ +name: Release +on: + workflow_dispatch: + inputs: + tag_name: + description: 'Tag name for release' + required: false + default: test + push: + tags: + - v[0-9]+.[0-9]+.[0-9]+ + +jobs: + build_vsix: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + - run: npm ci + + - name: Setup Environment + run: node -e "console.log('PKG_VERSION=' + require('./package.json').version + '\nPKG_NAME=' + require('./package.json').name + '-' + require('./package.json').version)" >> $GITHUB_ENV + + - name: Verify versions + run: node -e "if ('refs/tags/v' + '${{ env.PKG_VERSION }}' !== '${{ github.ref }}') { console.log('::error' + 'Version Mismatch. refs/tags/v' + '${{ env.PKG_VERSION }}', '${{ github.ref }}'); throw Error('Version Mismatch')} " + + - name: Build + shell: bash + run: | + npm run esbuild-base production + zip -r ${{ env.PKG_NAME }}.zip out/ prebuilds/ CHANGES.md LICENSE.md README.md + + - name: Create GitHub release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + generate_release_notes: true + files: ${{ env.PKG_NAME }}.zip diff --git a/.gitignore b/.gitignore index 3571113..60db988 100755 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ test/* kit/* out* .vscode +.zip