diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 0000000..d9bbe95 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,44 @@ +# https://documenter.juliadocs.org/stable/man/hosting/#GitHub-Actions +name: Documentation +on: + push: + paths-ignore: + - 'LICENSE' + - 'README.md' + branches: + - master + pull_request: + paths-ignore: + - 'LICENSE' + - 'README.md' + workflow_dispatch: +concurrency: + # cancel intermediate builds + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, 'skip ci')" + env: + JULIA_PKG_SERVER: '' + steps: + - name: Set up Julia + uses: julia-actions/setup-julia@v2 + with: + version: '1.9.3' + - name: Check out repository + uses: actions/checkout@v4 + - name: Cache artifacts + uses: julia-actions/cache@v2 + - name: Install dependencies + run: | + julia --project=docs/ -e 'using Pkg; + Pkg.develop(PackageSpec(path=pwd())); + Pkg.instantiate()' + - name: Build and deploy + run: julia --project=docs/ docs/make.jl + env: + GKSwstype: nul # fix for Plots with GR backend + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # authentication with GitHub Actions token + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # authentication with SSH deploy key \ No newline at end of file diff --git a/README.md b/README.md index 8acd0ef..86d40cb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # ModelVerification.jl ![CI](https://github.com/intelligent-control-lab/ModelVerification.jl/actions/workflows/CI.yml/badge.svg) +![Doc](https://github.com/intelligent-control-lab/ModelVerification.jl/actions/workflows/documentation.yml/badge.svg) ## Introduction Deep Neural Network (DNN) is crucial in approximating nonlinear functions across diverse applications, such as computer vision and control. Verifying specific input-output properties can be a highly challenging task. To this end, we present [ModelVerification.jl](https://github.com/intelligent-control-lab/ModelVerification.jl), the only cutting-edge toolbox that contains a suite of state-of-the-art methods for verifying DNNs. This toolbox significantly extends and improves the previous version ([NeuralVerification.jl](https://sisl.github.io/NeuralVerification.jl/latest/)) and is designed to empower developers and machine learning practioners with robust tools for verifying and ensuring the trustworthiness of their DNN models. @@ -123,28 +124,15 @@ Pages = ["nnet_converter.md", "python_interface.md"] Depth = 3 ``` -## Documents - -For an extensive documentation of the toolbox, please run a local web server out of the `docs/build` directory. - -First, install the [LiveServer](https://github.com/tlienart/LiveServer.jl) Julia package. -```Julia -$ julia -julia> import Pkg -julia> Pkg.add("LiveServer") -``` - -Then, start the server with one of the following methods: -1. In Julia REPL -```Julia -julia> using LiveServer -julia> serve(dir="docs/build") -``` -2. In console, using Julia -```console -julia -e 'using LiveServer; serve(dir="docs/build")' -``` - -This should take you to a full documentation of the toolbox. For more information, please follow the [Note in "Building an Empty Document" section](https://documenter.juliadocs.org/stable/man/guide/#Building-an-Empty-Document). - -An alternate is to click on the `index.html` file in the `docs/build` folder. \ No newline at end of file +## Citation + +Please consider citing this toolbox if it is useful for your research. +```bibtex +@misc{wei2024MV, + title = {ModelVerification.jl}, + author = {Wei, Tianhao and Hu, Hanjiang and Niu, Peizhi and Marzari, Luca and Yun, Kai S. and Luo, Xusheng and Liu, Changliu}, + advisor = {Liu, Changliu}, + howpublished = {\url{https://github.com/intelligent-control-lab/ModelVerification.jl}}, + year = {2024} +} +``` \ No newline at end of file