Is it normal that github actions hang?

I started my first github package that uses github actions, it hangs often. Six of seven tasks are completed fast (within a few minutes), and the last task runs for more than 30 min and does not finish.

Is that normal?

How long should I wait for a job to succeed before I terminate it manually?

See for example: retrigger checks · ufechner7/KiteUtils.jl@99cc211 · GitHub

I killed it. Next try:

Locally I can build the documentation just fine, and it also worked a few hours ago…

Related question: Does it make a difference if I use @v1 or @v2 for the documentation job?

  docs:
    name: Documentation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: julia-actions/setup-julia@v1
        with:
          version: '1'
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-docdeploy@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
      - run: |
          julia --project=docs -e '
            using Documenter: DocMeta, doctest
            using KiteUtils
            DocMeta.setdocmeta!(KiteUtils, :DocTestSetup, :(using KiteUtils); recursive=true)
            doctest(KiteUtils)'

For what it’s worth, I’ve also observed that since the latest week or so.

I had compat helper fail recently. Could that be the same problem?

Run import CompatHelper
2
  import CompatHelper
3
  CompatHelper.main()
4
  shell: /usr/bin/julia --color=yes {0}
5
  env:
6
    GITHUB_TOKEN: ***
7
    COMPATHELPER_PRIV: ***
8
Cloning into '/tmp/jl_s9Us3A/REPO'...
9
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
10
error: 6662 bytes of body are still expected
11
fetch-pack: unexpected disconnect while reading sideband packet
12
fatal: early EOF
13
fatal: fetch-pack: invalid index-pack output
14
ERROR: LoadError: failed process: Process(`git clone **github.com/ctkelley/SIAMFANLEquations.jl.git /tmp/jl_s9Us3A/REPO`, ProcessExited(128)) [128]

It’s normal if GitHub Actions itself is having problems: GitHub Status - Incident with GitHub Actions. Even though they acknowledged the incident only yesterday, the issue actually started more than 24 hours earlier, we’ve had plenty of troubles because of it in the General registry in the last couple of days.

Thanks a lot, now I know where to check if github actions are fully operational!

I set my timeout to 40 minutes. Normally it succeeds in 7 minutes or less, but sometimes it needs 30 min and sometimes it fails completely. Often it helps to cancel the job and re-trigger it with:

git commit -m "retrigger checks" --allow-empty

I also had a small mistake in my CI.yml file, this works most of the time fine now:

name: CI
on:
  push:
    branches:
      - main
    tags: '*'
  pull_request:
concurrency:
  # Skip intermediate builds: always.
  # Cancel intermediate builds: only if it is a pull request build.
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
  test:
    name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
    runs-on: ${{ matrix.os }}
    timeout-minutes: 40
    strategy:
      fail-fast: false
      matrix:
        version:
          - '1.6'
          - '1'
          - 'nightly'
        os:
          - ubuntu-latest
        arch:
          - x64
        include:
          - os: windows-latest
            arch: x64
            version: 1
    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@v1
      - uses: julia-actions/julia-runtest@v1
      - uses: julia-actions/julia-processcoverage@v1
      - uses: codecov/codecov-action@v2
        with:
          files: lcov.info
  docs:
    name: Documentation
    runs-on: ubuntu-latest
    timeout-minutes: 40
    steps:
      - uses: actions/checkout@v2
      - uses: julia-actions/setup-julia@v1
        with:
          version: '1'
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-docdeploy@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
      - run: |
          julia --project=docs -e '
            using Documenter: DocMeta, doctest
            using KiteUtils
            DocMeta.setdocmeta!(KiteUtils, :DocTestSetup, :(using KiteUtils); recursive=true)
            doctest(KiteUtils)'