VersionVigilante enforces the rule that all pull requests must increase the version number in your Julia package's Project.toml
file. This helps automate the continuous delivery (CD) process for your package.
A good description of the CD workflow for Julia packages is available here: https://white.ucc.asn.au/2019/09/28/Continuous-Delivery-For-Julia-Packages.html
VersionVigilante.main("https://github.com/MyUsername/MyPackage.jl")
VersionVigilante.main("https://example.com/foo/bar/baz/MyPackage.jl")
Add the following workflow to your repo in a workflow file
named .github/workflows/VersionVigilante_pull_request.yml
:
name: VersionVigilante
on: pull_request
jobs:
VersionVigilante:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- uses: julia-actions/setup-julia@latest
- name: VersionVigilante.main
id: versionvigilante_main
run: |
julia -e 'using Pkg; Pkg.add("VersionVigilante")'
julia -e 'using VersionVigilante; VersionVigilante.main("https://github.com/${{ github.repository }}")'
- name: ✅ Un-Labeller (if success)
if: (steps.versionvigilante_main.outputs.compare_versions == 'success') && (success() || failure())
continue-on-error: true
uses: actions/[email protected]
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.removeLabel({...context.issue, name: 'needs version bump'})
- name: ❌ Labeller (if failure)
if: (steps.versionvigilante_main.outputs.compare_versions == 'failure') && (success() || failure())
continue-on-error: true
uses: actions/[email protected]
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.addLabels({...context.issue, labels: ['needs version bump']})
Add the following to your .travis.yml
file.
Make sure to replace MYUSERNAME
and MYPACKAGE
with the correct values.
jobs:
include:
- stage: VersionVigilante
if: type = pull_request OR branch != master
julia: "1.2"
script:
- set -e
- julia -e 'using Pkg; Pkg.add("VersionVigilante")'
- julia -e 'using VersionVigilante; VersionVigilante.main("https://github.com/MYUSERNAME/MYPACKAGE.jl")'
after_success: true
If you use Bors on your repository, click here for instructions.