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)