diff --git a/.gitignore b/.gitignore index 96a87f3b6c2dfc08c5cb310ea04be8b670fde9f3..95c1dfbc91c152f09cef5be5ef16f01abfc199b4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ /deps/build.log +/docs/build/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..55a294ee82a3bc74ef37c8056a19f3059a6daf2e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,80 @@ +# Taken an adapted from gitlab's example repos: +# https://gitlab.com/gitlab-examples/julia + +# An example .gitlab-ci.yml file to test (and optionally report the +# coverage results of) your [Julia][1] packages. Please refer to the +# [documentation][2] for more information about package development in +# Julia. +# +# Here, it is assumed that your Julia package is named +# `MyPackage`. Change it to whatever name you have given to your +# package. +# +# [1]: http://julialang.org/ +# [2]: https://docs.julialang.org/en/v1/manual/documentation/index.html + +# Below is the template to run your tests in Julia +.test_template: &test_definition + # Uncomment below if you would like to run the tests on specific + # references only, such as the branches `master`, `development`, + # etc. + # only: + # - master + # - development + script: + # Let's run the tests. Substitute `coverage = false` below, if you + # do not want coverage results. + - julia -e 'using Pkg; Pkg.clone(pwd()); + Pkg.build("CaosDB"); + Pkg.test("CaosDB"; coverage = true)' + # Comment out below if you do not want coverage results. - + julia -e 'using Pkg; Pkg.add("Coverage"); + import CaosDB; + cd(joinpath(dirname(pathof(CaosDB)), "..")); + using Coverage; cl, tl = get_summary(process_folder()); + println("(", cl/tl*100, "%) covered")' + +# Name a test and select an appropriate image. +# images comes from Docker hub +test:0.7: + image: julia:0.7 + <<: *test_definition +test:1.0: + image: julia:1.0 + <<: *test_definition +test:1.6: + image: julia:1.6 + <<: *test_definition + +# REMARK: Do not forget to enable the coverage feature for your +# project, if you are using code coverage reporting above. This can be +# done by +# +# - Navigating to the `CI/CD Pipelines` settings of your project, +# - Copying and pasting the default `Simplecov` regex example +# provided, i.e., `\(\d+.\d+\%\) covered` in the `test coverage +# parsing` textfield. + +# Example documentation deployment +pages: + image: julia:0.7 + stage: deploy + script: + - apt-get update -qq && apt-get install -y git # needed by Documenter + - julia -e 'using Pkg; Pkg.clone(pwd()); Pkg.build("CaosDB");' # rebuild Julia (can be put somewhere else I'm sure) + - julia -e 'using Pkg; import CaosDB; Pkg.add("Documenter")' # install Documenter + - julia --color=yes docs/make.jl # make documentation + - mv docs/build public # move to the directory picked up by Gitlab pages + artifacts: + paths: + - public + only: + - main + +# WARNING: This template is using the `julia` images from [Docker +# Hub][3]. One can use custom Julia images and/or the official ones +# found in the same place. However, care must be taken to correctly +# locate the binary file (`/opt/julia/bin/julia` above), which is +# usually given on the image's description page. +# +# [3]: https://hub.docker.com/_/julia/