VersionVigilante
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
Basic usage
VersionVigilante.main("https://github.com/MyUsername/MyPackage.jl")
VersionVigilante.main("https://example.com/foo/bar/baz/MyPackage.jl")
Using on GitHub Actions
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/checkout@v1.0.0
- 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/github-script@0.3.0
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/github-script@0.3.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.addLabels({...context.issue, labels: ['needs version bump']})
Using on Travis CI
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
Using with Bors-NG
If you use Bors on your repository, click here for instructions.