diff --git a/.github/change-version.js b/.github/change-version.js new file mode 100644 index 0000000..3d341fb --- /dev/null +++ b/.github/change-version.js @@ -0,0 +1,9 @@ +const fs = require('fs'); + +const data = fs.readFileSync("package.json") +let json = JSON.parse(data); +let version = process.argv[2]; + +json.version = version.replace('refs/tags/v', ''); + +fs.writeFileSync("package.json", JSON.stringify(json, null, 2)); diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..def4d98 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,40 @@ +name: Release and Publish +on: + push: + tags: + - 'v*' + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + publish: + name: Publish + runs-on: ubuntu-latest + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 16.x + - name: Publish + run: | + node .github/change-version.js ${{ github.ref }} + npm config set //registry.npmjs.org/:_authToken=$NPM_TOKEN + npm config set scope "@kydev" + npm config list + npm publish --access public