gendoc: &gendoc name: Generate the docs command: | source /env/bin/activate scripts/gendoc.py genswagger: &genswagger name: Generate the swagger command: | source /env/bin/activate scripts/dump-swagger.py buildswaggerui: &buildswaggerui name: Build Swagger UI command: | ls scripts/ mkdir -p api/client-server git clone https://github.com/matrix-org/swagger-ui swagger-ui cp -r swagger-ui/dist/* api/client-server/ mkdir -p api/client-server/json cp scripts/swagger/api-docs.json api/client-server/json/ wget https://raw.githubusercontent.com/matrix-org/matrix.org/master/content/swagger.css -O api/client-server/swagger.css wget https://raw.githubusercontent.com/matrix-org/matrix.org/master/scripts/swagger-ui.patch patch api/client-server/index.html swagger-ui.patch checkexamples: &checkexamples name: Check Event Examples command: | source /env/bin/activate cd event-schemas ./check_examples.py cd ../api ./check_examples.py genmatrixassets: &genmatrixassets name: Generate/Verify matrix.org assets command: | source /env/bin/activate ./scripts/generate-matrix-org-assets validateapi: &validateapi name: Validate OpenAPI specifications command: | cd api npm install node validator.js -s "client-server" buildspeculator: &buildspeculator name: Build Speculator command: | cd scripts/speculator go build -v buildcontinuserv: &buildcontinuserv name: Build Continuserv command: | cd scripts/continuserv go build -v 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 - run: *genmatrixassets # We don't actually use the assets, but we do want to make sure they build build-docs: docker: - image: uhoreg/matrix-doc-build steps: - checkout - run: *gendoc - store_artifacts: path: scripts/gen - run: name: "Doc build is available at:" command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/scripts/gen/index.html"; echo $DOCS_URL build-swagger: docker: - image: uhoreg/matrix-doc-build steps: - checkout - run: *genswagger - run: *buildswaggerui - store_artifacts: path: api/client-server/ - run: name: "Swagger UI is available at:" command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/api/client-server/index.html"; echo $DOCS_URL build-dev-scripts: docker: - image: golang:1.8 steps: - checkout - run: name: Install Dependencies command: | go get -v github.com/hashicorp/golang-lru go get -v gopkg.in/fsnotify/fsnotify.v1 - run: *buildcontinuserv - run: *buildspeculator workflows: version: 2 build-spec: jobs: - build-docs - build-swagger - check-docs - validate-docs - build-dev-scripts notify: webhooks: - url: https://giles.cadair.com/circleci