@@ -81,18 +81,18 @@ jobs:
8181 package :
8282 needs : test
8383 runs-on : ubuntu-18.04
84-
84+
8585 steps :
8686 - uses : actions/checkout@v2.3.4
87-
87+
8888 - name : Use Node.js
8989 uses : actions/setup-node@v2.1.5
9090 with :
9191 node-version : 14.4.0
9292
9393 - run : npm ci
9494 - run : npm run compile
95-
95+
9696 - name : Download MacOS binary
9797 uses : actions/download-artifact@v3.0.0
9898 with :
@@ -124,11 +124,52 @@ jobs:
124124 - name : Store short commit SHA for filename
125125 id : vars
126126 run : echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
127-
127+
128+ - name : Get current pre-release version
129+ if : github.ref == 'refs/heads/master'
130+ id : get_pre_release
131+ run : |
132+ JSON=$(npx vsce show chenglou92.rescript-vscode --json)
133+ VERSION=$(echo $JSON | jq '.versions | .[0] | .["version"]')
134+ echo "::set-output name=current_version::${VERSION}"
135+
136+ - name : Increment pre-release version
137+ if : github.ref == 'refs/heads/master'
138+ id : increment_pre_release
139+ run : |
140+ NEW_VERSION=$(echo ${{ steps.get_pre_release.outputs.current_version }})
141+ node .github/workflows/bump-version.js ${NEW_VERSION}
142+
128143 - name : Package Extension
129- run : npx vsce package -o rescript-vscode-${{ steps.vars.outputs.sha_short }}.vsix
130-
144+ if : github.ref != 'refs/heads/master'
145+ run : npx vsce package -o rescript-vscode-${{ steps.vars.outputs.sha_short }}.vsix
146+
147+ - name : Package Extension
148+ if : github.ref == 'refs/heads/master'
149+ run : npx vsce package -o rescript-vscode-${{ steps.increment_pre_release.outputs.new_version }}.vsix ${{ steps.increment_pre_release.outputs.new_version }} --no-git-tag-version
150+
131151 - uses : actions/upload-artifact@v2
152+ if : github.ref != 'refs/heads/master'
132153 with :
133154 name : rescript-vscode-${{ steps.vars.outputs.sha_short }}.vsix
134155 path : rescript-vscode-${{ steps.vars.outputs.sha_short }}.vsix
156+
157+ - uses : actions/upload-artifact@v2
158+ if : github.ref == 'refs/heads/master'
159+ with :
160+ name : rescript-vscode-${{ steps.increment_pre_release.outputs.new_version }}.vsix
161+ path : rescript-vscode-${{ steps.increment_pre_release.outputs.new_version }}.vsix
162+
163+ - name : Publish latest master to GitHub
164+ if : github.ref == 'refs/heads/master'
165+ uses : marvinpinto/action-automatic-releases@latest
166+ with :
167+ repo_token : " ${{ secrets.GITHUB_TOKEN }}"
168+ automatic_release_tag : " latest-master"
169+ prerelease : true
170+ title : " Latest master"
171+ files : rescript-vscode-${{ steps.increment_pre_release.outputs.new_version }}.vsix
172+
173+ - name : Publish extension as pre-release
174+ if : github.ref == 'refs/heads/master'
175+ run : npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --pre-release ${{ steps.increment_pre_release.outputs.new_version }} --no-git-tag-version
0 commit comments