diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c30eb63..6486927 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -90,7 +90,7 @@ jobs: - 'min' - 'lts' - '1' # automatically expands to the latest stable 1.x release of Julia - - 'nightly' + - 'pre' # expands to latest alpha, beta or RC, if available, otherwise same as `1` os: - ubuntu-latest arch: @@ -123,7 +123,7 @@ jobs: - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: - file: lcov.info + files: lcov.info test_monorepo: name: Monorepo dev - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} runs-on: ${{ matrix.os }} diff --git a/.github/workflows/ci_nightly.yml b/.github/workflows/ci_nightly.yml new file mode 100644 index 0000000..43f6ea8 --- /dev/null +++ b/.github/workflows/ci_nightly.yml @@ -0,0 +1,108 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Nightly +on: + schedule: + - cron: 0 0 * * 1 # run once a week on Mondays + workflow_dispatch: +jobs: + test: + name: ${{ matrix.pkg.name }} - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.nthreads }} threads - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: + pkg: + - name: Arrow.jl + dir: '.' + - name: ArrowTypes.jl + dir: './src/ArrowTypes' + version: + - 'nightly' + os: + - ubuntu-latest + arch: + - x64 + nthreads: [1, 2] + steps: + - uses: actions/checkout@v5 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - 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.6 + with: + project: ${{ matrix.pkg.dir }} + - uses: julia-actions/julia-runtest@v1 + env: + JULIA_NUM_THREADS: ${{ matrix.nthreads }} + with: + project: ${{ matrix.pkg.dir }} + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v5 + with: + files: lcov.info + test_monorepo: + name: Monorepo dev - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + timeout-minutes: 30 + strategy: + fail-fast: true + matrix: + version: + - 'nightly' + os: + - ubuntu-latest + arch: + - x64 + steps: + - uses: actions/checkout@v5 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - 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 }}- + - name: Dev monorepo dependencies + shell: julia --project=monorepo {0} + run: | + using Pkg; + Pkg.develop([PackageSpec(path="."), PackageSpec(path="src/ArrowTypes")]) + - name: Run monorepo tests + continue-on-error: false + run: > + julia --color=yes --project=monorepo -e 'using Pkg; Pkg.test("Arrow")' diff --git a/.gitignore b/.gitignore index 6027399..4c10e7e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ # under the License. Manifest.toml +Manifest-v*.toml .DS_STORE *.jl.cov *.jl.*.cov