From 0d8f466f390f479c770e579231f9bfa24f62188b Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Wed, 17 Nov 2021 21:01:53 +0000 Subject: [PATCH] Replace remaining CircleCI jobs with GHA (#3505) Apparently the `build-docs` step is already happening, so we just need to port the schema and example validation jobs. --- .circleci/config.yml | 73 -------------------------------------- .github/workflows/main.yml | 30 ++++++++++++++++ 2 files changed, 30 insertions(+), 73 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index deff53db..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,73 +0,0 @@ -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 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9eb4e803..76d0d9e6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,6 +9,36 @@ on: workflow_dispatch: jobs: + validate-openapi: + name: "🔎 Validate OpenAPI specifications" + runs-on: ubuntu-latest + steps: + - name: "📥 Source checkout" + uses: actions/checkout@v2 + - name: "➕ Setup Node" + uses: actions/setup-node@v2 + with: + node-version: '14' + - name: "⚙️ npm" + working-directory: "./scripts" + run: | + npm install + - name: "🔎 Run validator" + working-directory: "./scripts" + run: | + node validator.js -s "../data/api/client-server" + + check-examples: + name: "🔎 Check Event schema examples" + runs-on: ubuntu-latest + container: uhoreg/matrix-doc-build + steps: + - name: "📥 Source checkout" + uses: actions/checkout@v2 + - name: "🔎 Run validator" + run: | + /env/bin/python scripts/check-event-schema-examples.py + build-openapi: name: "🐍 Build OpenAPI definitions" runs-on: ubuntu-latest