Skip to content

Latest commit

 

History

History
120 lines (101 loc) · 3.21 KB

README.md

File metadata and controls

120 lines (101 loc) · 3.21 KB

Run

Stable Dev Build Status Codecov Coveralls GitHub last commit

Run.jl provides functions to run tests or build documentation in an isolated environment. See more in the documentation.

Features

  • Simpler CI setup (.travis.yml, .gitlab-ci.yml, etc.)
  • Isolated and activatable sub-environments for Julia < 1.2.
  • Reproducible runs not only for test but also for any sub-projects (docs, benchmarks, etc.)
  • Finer Julia options (e.g., Run.test(fast=true) to run tests faster by minimizing JIT compilation.)

Examples

.github/workflow/*.yml

Here is an example for using Run.jl with GitHub Actions. Create a file, e.g., .github/workflow/test.yml, with:

name: Run tests

on:
  push:
    branches:
      - master
    tags: '*'
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        julia-version: ['1']
      fail-fast: false
    name: Test Julia ${{ matrix.julia-version }}
    steps:
      - uses: actions/checkout@v2
      - name: Setup julia
        uses: julia-actions/setup-julia@v1
        with:
          version: ${{ matrix.julia-version }}
      - run: julia -e 'using Pkg; pkg"add Run@0.1"'
      - run: julia -e 'using Run; Run.prepare()'
      - run: julia -e 'using Run; Run.test()'
      - uses: julia-actions/julia-processcoverage@v1
      - uses: codecov/codecov-action@v1
        with:
          file: ./lcov.info
          flags: unittests
          name: codecov-umbrella

.travis.yml

To use Run.test to run tests in Travis CI, add the following snippet in .travis.yml.

before_install:
  - unset JULIA_PROJECT
  - julia -e 'using Pkg; pkg"add Run@0.1"'
install:
  - julia -e 'using Run; Run.prepare_test()'
script:
  - julia -e 'using Run; Run.test()'
after_success:
  - julia -e 'using Run; Run.after_success_test()'
jobs:
  include:
    - stage: Documentation
      install:
        - julia -e 'using Run; Run.prepare_docs()'
      script:
        - julia -e 'using Run; Run.docs()'
      after_success: skip

Side notes:

  • Run.prepare_test() and Run.prepare_docs() are not required but it is a good idea to separate installation and test.
  • The test log can be minimized by passing prepare=false to Run.test.

.gitlab-ci.yml

.template:
  image: julia
  before_script:
    - julia -e 'using Pkg; pkg"add Run@0.1"'

test:
  extends: .template
  script:
    - julia -e 'using Run; Run.test()'

pages:
  extends: .template
  stage: deploy
  script:
    - julia -e 'using Run; Run.docs()'
    - mv docs/build public
  artifacts:
    paths:
      - public
  only:
    - master