diff --git a/.earthlyignore b/.earthlyignore new file mode 100644 index 000000000..fab2394f8 --- /dev/null +++ b/.earthlyignore @@ -0,0 +1,19 @@ +# https://docs.docker.com/build/concepts/context/#dockerignore-files +# Unlike .gitignore files directories are not ignored at all layers by default. +# The **/ prefix will make a pattern behave like a .gitignore pattern and apply +# in any directory, including the root. +**/*.pyc +**/.direnv/ +**/.envrc +**/.git/ +**/.github/ +**/.pytest_cache/ +**/.ruff_cache/ +**/__pycache__/ +**/_build/ +**/build/ +**/deb_dist/ +**/dist/ +**/rosdep.egg-info/ +**/rosdep_modules.egg-info/ +**/target/ diff --git a/.github/workflows/doc.yaml b/.github/workflows/doc.yaml new file mode 100644 index 000000000..e715c8e2a --- /dev/null +++ b/.github/workflows/doc.yaml @@ -0,0 +1,33 @@ +--- +name: Doc build +on: + push: + branches: ['main', 'docdeps'] + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: earthly/actions-setup@v1 + - name: Build documentation + run: | + earthly --ci --output +doc + - name: Upload build for GitHub Pages + uses: actions/upload-pages-artifact@v3 + with: + path: doc/_build/html + deploy: + permissions: + contents: read + id-token: write + pages: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-22.04 + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/build.earth b/build.earth new file mode 100644 index 000000000..e932e204b --- /dev/null +++ b/build.earth @@ -0,0 +1,35 @@ +VERSION 0.8 + +build: + FROM docker.io/library/python:3.12 + RUN mkdir -p /src || true + COPY --dir doc src test \ + CHANGELOG.rst \ + Makefile \ + README.md \ + rosdoc.yaml \ + setup.cfg \ + setup.py \ + stdeb.cfg \ + /src/rosdep + WORKDIR /src/rosdep + RUN pip install -e . + +testdeps: + FROM +build + RUN pip install .[test] + +test: + # TODO tests aren't passing in context. + FROM +testdeps + RUN pytest test + +docdeps: + FROM +build + RUN pip install .[doc] + +doc: + FROM +docdeps + WORKDIR /src/rosdep/doc + RUN make html + SAVE ARTIFACT _build/html AS LOCAL doc/_build/html diff --git a/doc/conf.py b/doc/conf.py index 583cc4d4c..a18ea3f99 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -232,4 +232,4 @@ # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'http://docs.python.org/': None} +# intersphinx_mapping = {'http://docs.python.org/': None} diff --git a/setup.py b/setup.py index 9f4a17d79..fa3d3d93b 100644 --- a/setup.py +++ b/setup.py @@ -22,6 +22,10 @@ 'flake8-quotes', 'pytest', ], + 'doc': [ + 'catkin_sphinx', + 'sphinx' + ], }, 'author': 'Tully Foote, Ken Conley', 'author_email': 'tfoote@osrfoundation.org',