gendoc: &gendoc name: Generate the docs # Note: Node dependencies are required for the hugo build. # Note: We use a custom config file for circleci due to some specifics with hosting the # site using CircleCI's artifacts platform. See config-circleci.toml for details. command: | apk add nodejs npm git hugo npm i cat config-circleci.toml config.toml > hugo-config.toml hugo --config hugo-config.toml --baseURL "/${CIRCLE_NODE_INDEX}/public" genswagger: &genswagger name: Validate sources and generate swagger json command: | source /env/bin/activate scripts/check-swagger-sources.py scripts/dump-swagger.py checkexamples: &checkexamples name: Check Event Examples command: | source /env/bin/activate scripts/check-event-schema-examples.py validateapi: &validateapi name: Validate OpenAPI specifications command: | cd scripts npm install node validator.js -s "../data/api/client-server" version: 2 jobs: validate-docs: docker: - image: node:alpine steps: - checkout - run: *validateapi check-docs: docker: - image: uhoreg/matrix-doc-build steps: - checkout - run: *checkexamples build-docs: docker: - image: alpine steps: # Note: We install git in the image so we can pull git submodules. The hugo theme in use # is a git submodule, which has its own submodules, and all need to be loaded. - run: apk add git - checkout - run: git submodule update --init --recursive - run: *gendoc - store_artifacts: path: public - run: name: "Doc build is available at:" command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/public/index.html"; echo $DOCS_URL workflows: version: 2 build-spec: jobs: - build-docs - check-docs - validate-docs notify: webhooks: - url: https://giles.cadair.dev/circleci