diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b486960..ee00a47 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -49,25 +49,72 @@ jobs: - uses: julia-actions/julia-uploadcoveralls@v0.1 continue-on-error: true - Documentation: + docs: + name: Documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: julia-actions/setup-julia@latest - with: - version: 1 - - name: Cache artifacts - uses: actions/cache@v2 - env: - cache-name: cache-artifacts + - uses: julia-actions/setup-julia@v1 with: - path: | - ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/docs/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - uses: julia-actions/julia-docdeploy@releases/v1 + version: '1' + - run: | + julia -e ' + function set_environment_variable(name::AbstractString, value::AbstractString) + github_env = ENV["GITHUB_ENV"] + touch(github_env) + open(github_env, "a") do io + println(io, "$(name)=$(value)") + end + end + event_name = "${{ github.event_name }}" + if event_name == "pull_request" + base_ref = "${{ github.base_ref }}" + head_ref = "${{ github.head_ref }}" + base_repository = "${{ github.repository }}" + head_repository = "${{ github.event.pull_request.head.repo.full_name }}" + build_docs = (base_ref == "master") && (head_ref == "dev") && (base_repository == head_repository) + elseif event_name == "push" + ref = "${{ github.ref }}" + build_docs = (ref == "refs/heads/master") || (startswith(ref, "refs/tags/")) + elseif event_name == "schedule" + build_docs = ref == "refs/heads/master" + elseif event_name == "workflow_dispatch" + build_docs = ref == "refs/heads/master" + else + build_docs = false + end + if build_docs + @info("We will build the docs") + set_environment_variable("BUILD_DOCS", "true") + else + @info("We will NOT build the docs") + set_environment_variable("BUILD_DOCS", "false") + end' + - run: | + julia --project=docs -e ' + if ENV["BUILD_DOCS"] == "true" + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate() + end' + - run: | + julia --project=docs -e ' + if ENV["BUILD_DOCS"] == "true" + using Documenter: doctest + using OpenML + @info "attempting to run the doctests" + doctest(OpenML) + else + @info "skipping the doctests" + end' + - run: julia --project=docs -e ' + if ENV["BUILD_DOCS"] == "true" + @info "attempting to build the docs" + run(`julia --project=docs docs/make.jl`) + @info "successfully built the docs" + else + @info "skipping the docs build" + end' env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/docs/make.jl b/docs/make.jl index d936d42..de9753c 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -6,5 +6,6 @@ makedocs( ) deploydocs( - repo = "github.com/JuliaAI/OpenML.jl.git", + repo = "github.com/JuliaAI/OpenML.jl", + push_preview = true )