name: CI # Run on master, tags, or any pull request on: schedule: - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) push: branches: [master] tags: ["*"] pull_request: jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: version: - "1.1" - "1.5" - "nightly" os: - ubuntu-latest - macOS-latest - windows-latest arch: - x64 include: # Add a 1.3 job because that's what Invenia actually uses - os: ubuntu-latest version: 1.3 arch: x64 steps: - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@v1 with: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - 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 }}- - uses: julia-actions/julia-buildpkg@latest - run: | git config --global user.name Tester git config --global user.email te@st.er - uses: julia-actions/julia-runtest@latest - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v1 with: file: lcov.info slack: name: Notify Slack Failure needs: test runs-on: ubuntu-latest if: github.event == 'schedule' steps: - uses: technote-space/workflow-conclusion-action@v2 - uses: voxmedia/github-action-slack-notify-build@v1 if: env.WORKFLOW_CONCLUSION == 'failure' with: channel: nightly-dev status: FAILED color: danger env: SLACK_BOT_TOKEN: ${{ secrets.DEV_SLACK_BOT_TOKEN }} docs: name: Documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@v1 with: version: '1' - run: | git config --global user.name name git config --global user.email email git config --global github.user username - run: | julia --project=docs -e ' using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate();' - run: julia --project=docs docs/make.jl env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}