We started to use GitHub actions to build Visual Composer release candidates in GitHub. This action will prepare a proper zip archive file which we can use to update our plugin in Wordpress.org.
We decided that the release will be built on the new tag. The tag will be the version of the published release.
on: push: tags: - '*'
We already had the script which was able to create a valid zip archive of Visual Composer Website Builder for Wordpress.org. It looks like this.
$ node _infrastructure/vcwb-builder/builder plugin -b VERSION -p ./_infrastructure
Yeah, this script will set plugin version also -b VERSION
. The question is how to get the version from GitHub tag. There is access to $GITHUB_REF
where we can get tags. I decide to create variable get_version
which can be used in other steps of the job.
- name: Get the version id: get_version run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
Then we just need to use steps.version_version
in the next step.
- name: Build project run: | yarn install node _infrastructure/vcwb-builder/builder plugin -b ${{ steps.get_version.outputs.VERSION }} -p ./_infrastructure
The next action is to create Github release itself.
- name: Create Release id: create_release uses: actions/create-release@v1.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: false prerelease: false
After release creation needs to upload our zip archive. I use actions/upload-release-asset@v1.0.1
action for that.
- name: Upload Release Asset id: upload_release_asset uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./_infrastructure/visualcomposer.zip asset_name: visualcomposer.zip asset_content_type: application/zip
That's it. The full version of the configuration file you can check here.
Good luck ✌️
Top comments (0)