diff --git a/.github/workflows/build_with_docs.yml b/.github/workflows/build_with_docs.yml new file mode 100644 index 0000000..c1e3d09 --- /dev/null +++ b/.github/workflows/build_with_docs.yml @@ -0,0 +1,77 @@ +name: Build the package using cmake then documentation + +on: + workflow_dispatch: + push: + pull_request: + release: + types: + - published + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Debug + +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v4 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v3 + with: + python-version: ${{ matrix.python-version }} + environment-file: etc/dev-env.yml + miniforge-version: latest + channels: conda-forge + conda-remove-defaults: "true" + + - name: Build library and docs + run: | + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAARE_SYSTEM_LIBRARIES=ON -DAARE_PYTHON_BINDINGS=ON -DAARE_DOCS=ON -DAARE_TESTS=ON + make -j 4 + make docs + + - name: C++ unit tests + working-directory: ${{github.workspace}}/build + run: ctest -C ${{env.BUILD_TYPE}} -j4 + + - name: Upload static files as artifact + id: deployment + uses: actions/upload-pages-artifact@v3 + with: + path: build/docs/html/ + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + if: (github.event_name == 'release' && github.event.action == 'published') || (github.event_name == 'workflow_dispatch' ) + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + + + +