diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 00000000..b6f39c04 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,76 @@ +name: CI +on: + push: + branches: + - 'master' + - 'main' + - 'release-' + tags: '*' + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - '1.6' # LTS version + - '1' # automatically expands to the latest stable 1.x release of Julia + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - x86 + exclude: + - os: macOS-latest + arch: x86 + - os: windows-latest + arch: x86 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: julia-actions/cache@v1 + - uses: julia-actions/julia-buildpkg@latest + - uses: julia-actions/julia-runtest@latest + env: + JULIA_NUM_THREADS: 4 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v3 + with: + file: lcov.info + test-nightly: + needs: test + name: Julia nightly - ${{ matrix.os }} - ${{ matrix.arch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - 'nightly' + os: + - ubuntu-latest + arch: + - x64 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: julia-actions/cache@v1 + - uses: julia-actions/julia-buildpkg@latest + - uses: julia-actions/julia-runtest@latest + env: + JULIA_NUM_THREADS: 4 diff --git a/.github/workflows/compathelper.yml b/.github/workflows/CompatHelper.yml similarity index 94% rename from .github/workflows/compathelper.yml rename to .github/workflows/CompatHelper.yml index da266b9a..187a2933 100644 --- a/.github/workflows/compathelper.yml +++ b/.github/workflows/CompatHelper.yml @@ -1,8 +1,10 @@ name: CompatHelper + on: schedule: - - cron: '00 00 * * *' + - cron: 0 0 * * * workflow_dispatch: + jobs: CompatHelper: runs-on: ubuntu-latest diff --git a/.github/workflows/docs.yml b/.github/workflows/Documentation.yml similarity index 59% rename from .github/workflows/docs.yml rename to .github/workflows/Documentation.yml index d81f4921..72f40322 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/Documentation.yml @@ -1,22 +1,35 @@ name: Documentation + on: push: branches: - - master + - 'master' + - 'main' + - 'release-' tags: '*' pull_request: + jobs: build: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + strategy: + matrix: + version: + - '1' # automatically expands to the latest stable 1.x release of Julia + os: + - ubuntu-latest + arch: + - x64 steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@latest with: - version: '1' + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} - name: Install dependencies run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - name: Build and deploy env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - run: julia --project=docs/ docs/make.jl \ No newline at end of file + run: julia --project=docs/ docs/make.jl diff --git a/.github/workflows/formatter.yml b/.github/workflows/FormatCheck.yml similarity index 83% rename from .github/workflows/formatter.yml rename to .github/workflows/FormatCheck.yml index 669ed7df..5ab61803 100644 --- a/.github/workflows/formatter.yml +++ b/.github/workflows/FormatCheck.yml @@ -1,6 +1,12 @@ -name: format-check +name: FormatCheck on: + push: + branches: + - 'main' + - 'master' + - 'release-' + tags: '*' pull_request: jobs: @@ -8,13 +14,17 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - julia-version: [1] - julia-arch: [x86] - os: [ubuntu-latest] + version: + - '1' # automatically expands to the latest stable 1.x release of Julia + os: + - ubuntu-latest + arch: + - x64 steps: - uses: julia-actions/setup-julia@latest with: - version: ${{ matrix.julia-version }} + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} - uses: actions/checkout@v4 - name: Install JuliaFormatter and format @@ -36,7 +46,6 @@ jobs: write(stdout, out) exit(1) end' - - name: Create pull request if: ${{ failure() && steps.format.conclusion == 'failure' }} id: cpr diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml index 2bacdb87..ec69bc9d 100644 --- a/.github/workflows/TagBot.yml +++ b/.github/workflows/TagBot.yml @@ -1,4 +1,5 @@ name: TagBot + on: issue_comment: types: @@ -7,6 +8,7 @@ on: inputs: lookback: default: 3 + permissions: actions: read checks: read @@ -20,6 +22,7 @@ permissions: repository-projects: read security-events: read statuses: read + jobs: TagBot: if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 3611af77..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: CI -on: - - push - - pull_request - - workflow_dispatch -jobs: - test: - name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.version == 'nightly' }} - strategy: - matrix: - version: - - '1.6' - - '1' - - 'nightly' - os: - - ubuntu-latest - - macOS-latest - - windows-latest - arch: - - x64 - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@latest - with: - version: ${{ matrix.version }} - arch: ${{ matrix.arch }} - - uses: julia-actions/cache@v1 - - uses: julia-actions/julia-buildpkg@latest - - uses: julia-actions/julia-runtest@latest - env: - JULIA_NUM_THREADS: 4 - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v3 - with: - files: lcov.info \ No newline at end of file