diff --git a/.drone.jsonnet b/.drone.jsonnet new file mode 100644 index 0000000..1d1c8e7 --- /dev/null +++ b/.drone.jsonnet @@ -0,0 +1,26 @@ +local Pipeline(os, arch, version) = { + kind: "pipeline", + name: os+" - "+arch+" - Julia "+version, + platform: { + os: os, + arch: arch + }, + steps: [ + { + name: "build", + image: "julia:"+version, + commands: [ + "julia --project=. --check-bounds=yes --color=yes -e 'using InteractiveUtils; versioninfo(verbose=true); using Pkg; Pkg.build(); Pkg.test(coverage=true)'" + ] + } + ], + trigger: { + branch: ["master"] + } +}; + +[ + Pipeline("linux", "arm", "1.3"), + Pipeline("linux", "arm64", "1.3"), + Pipeline("linux", "arm64", "1.5") +] diff --git a/.drone.yml b/.drone.yml index 54f6363..c38671a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,6 +12,10 @@ steps: commands: - "julia --project=. --check-bounds=yes --color=yes -e 'using InteractiveUtils; versioninfo(verbose=true); using Pkg; Pkg.build(); Pkg.test(coverage=true)'" +trigger: + branch: + - master + --- kind: pipeline name: linux - arm64 - Julia 1.3 @@ -26,4 +30,26 @@ steps: commands: - "julia --project=. --check-bounds=yes --color=yes -e 'using InteractiveUtils; versioninfo(verbose=true); using Pkg; Pkg.build(); Pkg.test(coverage=true)'" +trigger: + branch: + - master + +--- +kind: pipeline +name: linux - arm64 - Julia 1.5 + +platform: + os: linux + arch: arm64 + +steps: +- name: build + image: julia:1.5 + commands: + - "julia --project=. --check-bounds=yes --color=yes -e 'using InteractiveUtils; versioninfo(verbose=true); using Pkg; Pkg.build(); Pkg.test(coverage=true)'" + +trigger: + branch: + - master + ... diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9fbcc3f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +.drone.jsonnet linguist-detectable=false +CITATION.bib linguist-detectable=false diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..cee7ac2 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,91 @@ +name: CI + +on: + pull_request: + push: + branches: + - master + tags: '*' + +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - provider ${{ matrix.provider }} - ${{ matrix.threads }} thread(s) + runs-on: ${{ matrix.os }} + env: + JULIA_FFTW_PROVIDER: ${{ matrix.provider }} + JULIA_NUM_THREADS: ${{ matrix.threads }} + strategy: + fail-fast: false + matrix: + provider: + - 'FFTW' + - 'MKL' + version: + - '1.3' + - 'nightly' + os: + - ubuntu-latest + - macOS-latest + - windows-latest + threads: + - '1' + - '2' + arch: + - x64 + - x86 + exclude: + # 32-bit Julia binaries are not available on macOS + - os: macOS-latest + arch: x86 + # 32-bit Linux binary for MKL isn't always available, let's ignore it + - os: ubuntu-latest + provider: 'MKL' + arch: x86 + - provider: 'MKL' + threads: '2' + + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v2 + 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 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v1 + with: + file: lcov.info + + Documentation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@latest + with: + version: 1 + - name: Cache artifacts + uses: actions/cache@v2 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/docs/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-docdeploy@releases/v1 + env: + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml index 3f5bfc7..f49313b 100644 --- a/.github/workflows/TagBot.yml +++ b/.github/workflows/TagBot.yml @@ -1,11 +1,15 @@ name: TagBot on: - schedule: - - cron: 37 09 * * * + issue_comment: + types: + - created + workflow_dispatch: jobs: TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' runs-on: ubuntu-latest steps: - uses: JuliaRegistries/TagBot@v1 with: token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cc3ce7b..0000000 --- a/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Documentation: http://docs.travis-ci.com/user/languages/julia/ -language: julia -os: - - linux - - freebsd - - osx - - windows -julia: - - 1.3 - - nightly -env: - - JULIA_FFTW_PROVIDER=FFTW - - JULIA_FFTW_PROVIDER=MKL - - JULIA_NUM_THREADS=2 -notifications: - email: false -# uncomment the following lines to override the default test script -#script: -# - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi -# - julia -e 'Pkg.clone(pwd()); Pkg.build("FFTW"); Pkg.test("FFTW"; coverage=true)' -after_success: - - julia -e 'using Pkg; Pkg.add("Coverage"); Pkg.dir("FFTW"); using Coverage; Coveralls.submit(Coveralls.process_folder())' - -branches: - only: - - master - - gh-pages # For building documentation - - /^testing-.*$/ # testing branches - - /^v[0-9]+\.[0-9]+\.[0-9]+$/ # version tags - -cache: - directories: - - $HOME/.julia/artifacts - -jobs: - exclude: - - os: freebsd - env: JULIA_FFTW_PROVIDER=MKL - include: - - stage: "Documentation" - julia: 1.3 - os: linux - script: - - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); - Pkg.instantiate(); - Pkg.build("FFTW")' - - julia --project=docs/ docs/make.jl - after_success: skip diff --git a/README.md b/README.md index c863ded..0bb39f6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # FFTW.jl -[![Travis](https://travis-ci.org/JuliaMath/FFTW.jl.svg?branch=master)](https://travis-ci.org/JuliaMath/FFTW.jl) -[![AppVeyor](https://ci.appveyor.com/api/projects/status/w2bow83kn8ej7g0g?svg=true)](https://ci.appveyor.com/project/StevenGJohnson/fftw-jl) +[![CI](https://github.com/JuliaMath/FFTW.jl/workflows/CI/badge.svg)](https://github.com/JuliaMath/FFTW.jl/actions?query=workflow%3ACI) [![Coveralls](https://coveralls.io/repos/github/JuliaMath/FFTW.jl/badge.svg?branch=master)](https://coveralls.io/github/JuliaMath/FFTW.jl?branch=master) [![](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaMath.github.io/FFTW.jl/stable) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 03d141d..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,45 +0,0 @@ -environment: - matrix: - - julia_version: 1.3 - - julia_version: nightly - -cache: - - '%USERPROFILE%\.julia\artifacts' - -platform: - - x86 # 32-bit - - x64 # 64-bit - -# # Uncomment the following lines to allow failures on nightly julia -# # (tests will run but not make your overall status red) -# matrix: -# allow_failures: -# - julia_version: latest - -branches: - only: - - master - - /release-.*/ - -notifications: - - provider: Email - on_build_success: false - on_build_failure: false - on_build_status_changed: false - -install: - - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1")) - -build_script: - - echo "%JL_BUILD_SCRIPT%" - - C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%" - -test_script: - - echo "%JL_TEST_SCRIPT%" - - C:\julia\bin\julia -e "%JL_TEST_SCRIPT%" - -# # Uncomment to support code coverage upload. Should only be enabled for packages -# # which would have coverage gaps without running on Windows -# on_success: -# - echo "%JL_CODECOV_SCRIPT%" -# - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%"