mirror of
https://github.com/julia-actions/julia-runtest.git
synced 2026-02-12 11:06:54 +08:00
Compare commits
4 Commits
v1.11.3
...
ib/info_on
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
198ed292c4 | ||
|
|
65a5f81584 | ||
|
|
013f11f99f | ||
|
|
f098dd2fa4 |
23
.github/workflows/ci.yml
vendored
23
.github/workflows/ci.yml
vendored
@@ -7,17 +7,24 @@ on:
|
|||||||
- "master"
|
- "master"
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
|
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
timeout-minutes: 5
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
version:
|
version:
|
||||||
- "1.0"
|
- "1.0"
|
||||||
|
- "lts"
|
||||||
- "1" # automatically expands to the latest stable 1.x release of Julia
|
- "1" # automatically expands to the latest stable 1.x release of Julia
|
||||||
- nightly
|
- "pre"
|
||||||
|
- "nightly"
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- macOS-latest
|
- macOS-latest
|
||||||
@@ -25,10 +32,22 @@ jobs:
|
|||||||
arch:
|
arch:
|
||||||
- x64
|
- x64
|
||||||
- x86
|
- x86
|
||||||
|
- aarch64
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# 32-bit Julia binaries are not available on macOS
|
||||||
|
# macOS runners use Apple Silicon (ARM64)
|
||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macOS-latest
|
||||||
arch: x86
|
arch: x86
|
||||||
|
- os: macOS-latest
|
||||||
|
arch: x64
|
||||||
|
- os: ubuntu-latest
|
||||||
|
arch: aarch64
|
||||||
|
- os: windows-latest
|
||||||
|
arch: aarch64
|
||||||
|
# Julia 1.0 didn't support ARM64
|
||||||
|
- os: macOS-latest
|
||||||
|
arch: aarch64
|
||||||
|
version: "1.0"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Example.jl
|
- name: Checkout Example.jl
|
||||||
@@ -52,7 +71,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: julia-actions/cache@d10a6fd8f31b12404a54613ebad242900567f2b9 # v2.1.0
|
- uses: julia-actions/cache@d10a6fd8f31b12404a54613ebad242900567f2b9 # v2.1.0
|
||||||
|
|
||||||
- uses: julia-actions/julia-buildpkg@e3eb439fad4f9aba7da2667e7510e4a46ebc46e1 # v1.7.0
|
# - uses: julia-actions/julia-buildpkg@e3eb439fad4f9aba7da2667e7510e4a46ebc46e1 # v1.7.0
|
||||||
|
|
||||||
- uses: ./.github/actions/julia-runtest
|
- uses: ./.github/actions/julia-runtest
|
||||||
|
|
||||||
|
|||||||
21
.github/workflows/test_logger_ci.yml
vendored
21
.github/workflows/test_logger_ci.yml
vendored
@@ -7,17 +7,24 @@ on:
|
|||||||
- "master"
|
- "master"
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
|
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
timeout-minutes: 5
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
version:
|
version:
|
||||||
- "1.6"
|
- "1.6"
|
||||||
|
- "lts"
|
||||||
- "1" # automatically expands to the latest stable 1.x release of Julia
|
- "1" # automatically expands to the latest stable 1.x release of Julia
|
||||||
- nightly
|
- "pre"
|
||||||
|
- "nightly"
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- macOS-latest
|
- macOS-latest
|
||||||
@@ -25,10 +32,22 @@ jobs:
|
|||||||
arch:
|
arch:
|
||||||
- x64
|
- x64
|
||||||
- x86
|
- x86
|
||||||
|
- aarch64
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# 32-bit Julia binaries are not available on macOS
|
||||||
|
# macOS runners use Apple Silicon (ARM64)
|
||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macOS-latest
|
||||||
arch: x86
|
arch: x86
|
||||||
|
- os: macOS-latest
|
||||||
|
arch: x64
|
||||||
|
- os: ubuntu-latest
|
||||||
|
arch: aarch64
|
||||||
|
- os: windows-latest
|
||||||
|
arch: aarch64
|
||||||
|
# Julia 1.6 didn't support ARM64
|
||||||
|
- os: macOS-latest
|
||||||
|
arch: aarch64
|
||||||
|
version: "1.6"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout julia-runtest
|
- name: Checkout julia-runtest
|
||||||
|
|||||||
34
action.yml
34
action.yml
@@ -66,9 +66,39 @@ runs:
|
|||||||
prefix=( ${{ inputs.prefix }} )
|
prefix=( ${{ inputs.prefix }} )
|
||||||
[[ -n ${prefix[*]} ]] && julia_cmd=( "${prefix[@]}" "${julia_cmd[@]}" )
|
[[ -n ${prefix[*]} ]] && julia_cmd=( "${prefix[@]}" "${julia_cmd[@]}" )
|
||||||
|
|
||||||
# Run the Julia command
|
# Determine which signal to use for diagnostics based on OS
|
||||||
|
if [[ "$(uname -s)" == "Darwin" ]] || [[ "$(uname -s)" == *"BSD"* ]]; then
|
||||||
|
info_signal="INFO"
|
||||||
|
else
|
||||||
|
info_signal="USR1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up signal handler to send diagnostic signal when we receive SIGTERM
|
||||||
|
# (which GitHub Actions sends on timeout/cancellation)
|
||||||
|
trap_handler() {
|
||||||
|
echo "::warning::Timeout/cancellation detected - sending SIG${info_signal} to Julia process for diagnostic output"
|
||||||
|
if kill -0 "$julia_pid" 2>/dev/null; then
|
||||||
|
kill -s "$info_signal" "$julia_pid" 2>/dev/null || true
|
||||||
|
# Give Julia a moment to print diagnostics before we get killed
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
# Re-send SIGTERM to Julia to ensure it terminates
|
||||||
|
kill -TERM "$julia_pid" 2>/dev/null || true
|
||||||
|
wait "$julia_pid" 2>/dev/null || true
|
||||||
|
exit 124 # Standard timeout exit code
|
||||||
|
}
|
||||||
|
trap trap_handler SIGTERM SIGINT
|
||||||
|
|
||||||
|
# Run the Julia command in the background so we can handle signals
|
||||||
echo "::debug::Executing Julia: ${julia_cmd[*]}"
|
echo "::debug::Executing Julia: ${julia_cmd[*]}"
|
||||||
"${julia_cmd[@]}"
|
"${julia_cmd[@]}" &
|
||||||
|
julia_pid=$!
|
||||||
|
|
||||||
|
# Wait for Julia to complete
|
||||||
|
wait "$julia_pid"
|
||||||
|
exit_code=$?
|
||||||
|
|
||||||
|
exit $exit_code
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
ANNOTATE: ${{ inputs.annotate }}
|
ANNOTATE: ${{ inputs.annotate }}
|
||||||
|
|||||||
Reference in New Issue
Block a user