From 160afe2f7eef8548bbc584f2df0d82d45bb02f5c Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Fri, 18 Dec 2020 12:40:03 +0000 Subject: [PATCH 1/4] Update GitHub Actions --- .github/workflows/CI.yml | 99 ++++++++++++++++++++++++++++++ .github/workflows/CompatHelper.yml | 6 +- .github/workflows/JuliaNightly.yml | 34 ++++++++++ .github/workflows/TagBot.yml | 8 ++- 4 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/CI.yml create mode 100644 .github/workflows/JuliaNightly.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 000000000..9627565ce --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,99 @@ +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" # Latest Release + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - x86 + exclude: + # Test 32-bit only on Linux + - os: macOS-latest + arch: x86 + - os: windows-latest + arch: x86 + 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-rse + status: FAILED + color: danger + env: + SLACK_BOT_TOKEN: ${{ secrets.INVENIA_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(); + include("docs/make.jl");' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml index ce8d353bf..6c96707af 100644 --- a/.github/workflows/CompatHelper.yml +++ b/.github/workflows/CompatHelper.yml @@ -1,9 +1,8 @@ name: CompatHelper - on: schedule: - - cron: '00 00 * * *' - + - cron: '0 0 * * *' # Everyday at midnight + workflow_dispatch: jobs: CompatHelper: runs-on: ubuntu-latest @@ -13,4 +12,5 @@ jobs: - name: CompatHelper.main() env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }} run: julia -e 'using CompatHelper; CompatHelper.main()' diff --git a/.github/workflows/JuliaNightly.yml b/.github/workflows/JuliaNightly.yml new file mode 100644 index 000000000..7b9f43fcd --- /dev/null +++ b/.github/workflows/JuliaNightly.yml @@ -0,0 +1,34 @@ +name: JuliaNightly +# Nightly Scheduled Julia Nightly Run +on: + schedule: + - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) +jobs: + test: + name: Julia Nightly - Ubuntu - x64 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: nightly + arch: x64 + - 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 diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml index d77d3a0c3..f49313b66 100644 --- a/.github/workflows/TagBot.yml +++ b/.github/workflows/TagBot.yml @@ -1,11 +1,15 @@ name: TagBot on: - schedule: - - cron: 0 * * * * + issue_comment: + types: + - created + workflow_dispatch: jobs: TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' runs-on: ubuntu-latest steps: - uses: JuliaRegistries/TagBot@v1 with: token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} From a19b35173f911eb7ac8f80a01a303a9426792dea Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Fri, 18 Dec 2020 12:40:33 +0000 Subject: [PATCH 2/4] Remove TravisCI --- .travis.yml | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c3512284d..000000000 --- a/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Documentation: http://docs.travis-ci.com/user/languages/julia/ -language: julia -os: - - linux -julia: - - 1.0 - - 1.1 - - 1.2 - - 1.3 - - 1.4 - - nightly -jobs: - allow_failures: - - julia: nightly - include: - - stage: "Documentation" - julia: 1 - os: linux - script: - - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - - julia --project=docs/ docs/make.jl - after_success: skip - -after_success: - - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' -notifications: - email: - recipients: - - nightly-rse@invenia.ca - on_success: never - on_failure: always - if: type = cron From 806605926a70f052e9ddb3cffee1107f0d050053 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Fri, 18 Dec 2020 18:35:33 +0000 Subject: [PATCH 3/4] Update .github/workflows/CI.yml Co-authored-by: Fernando Chorney --- .github/workflows/CI.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9627565ce..60d6a1ab8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -51,9 +51,6 @@ jobs: ${{ 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 From aa6f91c53993654a482ee827c93dec37b2add403 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Fri, 18 Dec 2020 18:37:03 +0000 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Fernando Chorney --- .github/workflows/CI.yml | 15 ++++++--------- .github/workflows/JuliaNightly.yml | 3 --- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 60d6a1ab8..1c7ec0f42 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,6 +16,7 @@ jobs: matrix: version: - "1" # Latest Release + - '1.0' # LTS os: - ubuntu-latest - macOS-latest @@ -61,7 +62,7 @@ jobs: name: Notify Slack Failure needs: test runs-on: ubuntu-latest - if: github.event == 'schedule' + if: always() && github.event_name == 'schedule' steps: - uses: technote-space/workflow-conclusion-action@v2 - uses: voxmedia/github-action-slack-notify-build@v1 @@ -81,16 +82,12 @@ jobs: - 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(); - include("docs/make.jl");' + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate() + include("docs/make.jl")' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/JuliaNightly.yml b/.github/workflows/JuliaNightly.yml index 7b9f43fcd..d3c82505f 100644 --- a/.github/workflows/JuliaNightly.yml +++ b/.github/workflows/JuliaNightly.yml @@ -24,9 +24,6 @@ jobs: ${{ 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