name: ci on: push: pull_request: defaults: run: shell: bash jobs: CI: if: "!contains(github.event.head_commit.message, '[skip ci]')" env: GKS_ENCODING: "utf8" name: Julia ${{ matrix.julia_version }} - ${{ matrix.os }} runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.allow-failure }} strategy: fail-fast: false matrix: julia_version: - '1.3' - '1' - 'nightly' os: - ubuntu-latest - windows-latest - macos-latest arch: - x64 # - x86 allow-failure: [false] include: ## allow failures on nightly - version: 'nightly' os: ubuntu-latest arch: x64 allow-failure: true - version: 'nightly' os: macOS-latest arch: x64 allow-failure: true - version: 'nightly' os: windows-latest arch: x64 allow-failure: true ## allow failures for julia 1.3 windows (test_images work but differ) - version: '1.3' os: windows-latest arch: x64 allow-failure: true ## if we want to run tests on x86: # - version: 'nightly' # os: ubuntu-latest # arch: x86 # allow-failure: true # - version: 'nightly' # os: windows-latest # arch: x86 # allow-failure: true # exclude: # - os: macOS-latest # arch: x86 steps: # Setup environment - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@latest with: version: ${{ matrix.julia_version }} - name: Cache artifacts uses: actions/cache@v1 env: cache-name: cache-artifacts with: path: ~/.julia/artifacts key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} restore-keys: | ${{ runner.os }}-test-${{ env.cache-name }}- ${{ runner.os }}-test- ${{ runner.os }}- ## maybe required if we ever want to run graphical tests for plotly # OS Dependencies # - name: Ubuntu OS dependencies # if: startsWith(matrix.os,'ubuntu') # run: | # ./test/install_wkhtmltoimage.sh # TESTCMD - name: Default TESTCMD run: echo ::set-env name=TESTCMD::"julia" - name: Ubuntu TESTCMD if: startsWith(matrix.os,'ubuntu') run: echo ::set-env name=TESTCMD::"xvfb-run julia" # Julia Deoendencies - name: Install Julia dependencies uses: julia-actions/julia-buildpkg@latest # Run tests - name: Run Graphical test run: $TESTCMD --project -e 'using Pkg; Pkg.test(coverage=true);' - name: Codecov uses: julia-actions/julia-uploadcodecov@latest env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} Skip: if: "contains(github.event.head_commit.message, '[skip ci]')" runs-on: ubuntu-latest steps: - name: Skip CI 🚫 run: echo skip ci