Skip to content

fix!: remove deprecations for 1.0 release #1223

fix!: remove deprecations for 1.0 release

fix!: remove deprecations for 1.0 release #1223

Workflow file for this run

name: CI
on:
pull_request:
branches:
- main
paths:
- "src/**"
- "ext/**"
- "test/**"
- "Project.toml"
- ".github/workflows/CI.yml"
push:
branches:
- main
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:
ci:
name: Julia ${{ matrix.version }} - ${{ matrix.test_group }} - ${{ matrix.os }} - ${{ matrix.blas_backend }}
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
version:
- "1"
os:
- ubuntu-latest
- macos-latest
- windows-latest
test_group:
- "conv"
- "dense"
- "batch_norm"
- "group_norm"
- "instance_norm"
- "layer_norm"
- "other_ops"
- "batched_ops"
- "others"
blas_backend:
- "default"
exclude:
- os: macos-latest
test_group: "conv" # Never terminates
include:
- os: ubuntu-latest
test_group: "dense"
blas_backend: "blis"
version: "1"
- os: ubuntu-latest
test_group: "dense"
blas_backend: "mkl"
version: "1"
- os: macos-latest
test_group: "dense"
blas_backend: "appleaccelerate"
version: "1"
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
- uses: actions/cache@v4
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
env:
LUXLIB_TEST_GROUP: ${{ matrix.test_group }}
LUXLIB_BLAS_BACKEND: ${{ matrix.blas_backend }}
- uses: julia-actions/julia-processcoverage@v1
with:
directories: src,ext
- uses: codecov/codecov-action@v4
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
fail_ci_if_error: true
downstream:
name: Downstream ${{ matrix.package.repo }}/${{ matrix.package.group }}
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') && github.base_ref == github.event.repository.default_branch }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
GROUP: ${{ matrix.package.group }}
LUX_TEST_GROUP: ${{ matrix.package.group }}
strategy:
fail-fast: false
matrix:
julia-version: ["1"]
os: [ubuntu-latest]
package:
- { user: LuxDL, repo: Lux.jl, group: "core_layers" }
- { user: LuxDL, repo: Lux.jl, group: "contrib" }
- { user: LuxDL, repo: Lux.jl, group: "helpers" }
- { user: LuxDL, repo: Lux.jl, group: "distributed" }
- { user: LuxDL, repo: Lux.jl, group: "normalize_layers" }
- { user: LuxDL, repo: Lux.jl, group: "others" }
- { user: LuxDL, repo: Lux.jl, group: "autodiff" }
- { user: LuxDL, repo: Lux.jl, group: "recurrent_layers" }
- { user: LuxDL, repo: Lux.jl, group: "eltype_match" }
- { user: LuxDL, repo: Lux.jl, group: "fluxcompat" }
- { user: LuxDL, repo: Boltz.jl, group: All }
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
arch: x64
- uses: julia-actions/julia-buildpkg@v1
- name: Clone Downstream
uses: actions/checkout@v4
with:
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
path: downstream
- name: Load this and run the downstream tests
shell: julia --code-coverage=user --color=yes --project=downstream {0}
run: |
using Pkg
try
# force it to use this PR's version of the package
Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
Pkg.update()
Pkg.test(; coverage="user") # resolver may fail with test time deps
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
# If we can't resolve that means this is incompatible by SemVer and this is fine
# It means we marked this as a breaking change, so we don't need to worry about
# Mistakenly introducing a breaking change, as we have intentionally made one
@info "Not compatible with this release. No problem." exception=err
exit(0) # Exit immediately, as a success
end
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v4
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
fail_ci_if_error: true
downgrade:
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') && github.base_ref == github.event.repository.default_branch }}
name: Downgrade Julia ${{ matrix.version }} - ${{ matrix.test_group }}
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
version:
- "1"
test_group:
- "conv"
- "dense"
- "batch_norm"
- "group_norm"
- "instance_norm"
- "layer_norm"
- "other_ops"
- "batched_ops"
- "others"
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
- uses: julia-actions/julia-downgrade-compat@v1
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
env:
LUXLIB_TEST_GROUP: ${{ matrix.test_group }}
- uses: julia-actions/julia-processcoverage@v1
with:
directories: src,ext
- uses: codecov/codecov-action@v4
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
fail_ci_if_error: true
invalidations:
# Only run on PRs to the default branch.
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
if: github.base_ref == github.event.repository.default_branch
runs-on: ubuntu-latest
steps:
- uses: julia-actions/setup-julia@v2
with:
version: "1"
- uses: actions/checkout@v4
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-invalidations@v1
id: invs_pr
- uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-invalidations@v1
id: invs_default
- name: Report invalidation counts
run: |
echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
- name: Check if the PR does increase number of invalidations
if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
run: exit 1
env:
BACKEND_GROUP: "CPU"
RETESTITEMS_TESTITEM_TIMEOUT: 3600