AgentSkillsCN

julia-ci-github

为Julia软件包配置GitHub Actions CI,涵盖测试、文档生成与基准测试。当您需要搭建或修改CI工作流时,此技能将助您一臂之力。

SKILL.md
--- frontmatter
name: julia-ci-github
description: Configure GitHub Actions CI for Julia packages including testing, documentation, and benchmarks. Use this skill when setting up or modifying CI workflows.

Julia CI with GitHub Actions

Configure continuous integration for Julia packages using GitHub Actions.

Core Workflows

WorkflowPurpose
ci.ymlMain tests across OS/Julia versions
ci-julia-nightly.ymlTest against Julia nightly/alpha
downgrade.ymlTest with minimum dependency versions
benchmark.ymlPerformance tracking on PRs
TagBot.ymlAutomatic tagging after registry merge

Main CI Workflow

yaml
name: CI
on:
  push:
    branches: [master, main]
    tags: ["*"]
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ (github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main') || github.run_number }}
  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

env:
  PYTHON: ~

jobs:
  test:
    name: Julia ${{ matrix.version }} - ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        version: ['1', '1.10']
        os: [ubuntu-latest]
    steps:
      - uses: actions/checkout@v6
      - uses: julia-actions/setup-julia@v2
        with:
          version: ${{ matrix.version }}
      - uses: julia-actions/cache@v2
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-runtest@v1
      - uses: julia-actions/julia-processcoverage@v1
      - uses: codecov/codecov-action@v5
        with:
          files: lcov.info
          token: ${{ secrets.CODECOV_TOKEN }}

  docs:
    name: Documentation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: julia-actions/setup-julia@v2
        with:
          version: '1'
      - uses: julia-actions/cache@v2
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-docdeploy@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}

Required Secrets

SecretPurposeHow to Generate
CODECOV_TOKENCoverage uploadFrom codecov.io dashboard
DOCUMENTER_KEYDoc deploymentDocumenterTools.genkeys()
GITHUB_TOKENAuto-providedBuilt-in

Environment Variables

VariablePurpose
PYTHON: ~Disable PyCall auto-detection
GKSwstype: nulFix Plots/GR on headless
JULIA_NUM_THREADSSet thread count

Reference

Related Skills

  • julia-ci-buildkite - Buildkite CI configuration
  • julia-tests-run - Running tests
  • julia-tests-write - Writing tests