Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/actions/dead-links/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Dead Links
description: Run Dead Links Tests
runs:
using: "composite"
steps:
- name: Install deps
run: npm ci
shell: bash
- name: Prepare documentation
run: npm run doc-prepare
shell: bash
- name: Install docs repositories
run: npx kuzdoc iterate-repos:install --repos_path doc/framework/.repos/
shell: bash
- name: Link kuzdoc
run: npx kuzdoc framework:link -d /sdk/js/7/ -v 7
shell: bash
- name: Install typhoeus
run: sudo gem install typhoeus
shell: bash
- name: Run dead links tests
run: cd doc/framework/ && HYDRA_MAX_CONCURRENCY=20 ruby .ci/dead-links.rb -p src/sdk/js/7/
shell: bash
53 changes: 53 additions & 0 deletions .github/actions/doc-deploy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Deploy Documentation
description: Build doc, upload it to S3 and invalidate Cloudfront cache

inputs:
AWS_ACCESS_KEY_ID:
description: AWS Access key ID
required: true
AWS_SECRET_ACCESS_KEY:
description: AWS secret key
required: true
S3_BUCKET:
description: S3 bucket name
required: true
CLOUDFRONT_ID:
description: Cloudfront distribution ID
required: true
REGION:
description: AWS default region
required: true
FRAMEWORK_BRANCH:
description: Documentation framework branch to use
required: true

runs:
using: "composite"
steps:
- name: Install AWS CLI
run: |
sudo apt-get update
sudo apt-get install python python-pip
pip install awscli --upgrade --user
shell: bash
- name: Build documentation
run: |
rm -fr doc/framework
npm install --production=false
npm run doc-prepare
npm run doc-build
env:
NODE_ENV: production
FRAMEWORK_BRANCH: ${{ inputs.FRAMEWORK_BRANCH }}
shell: bash
- name: Deploy documentation
run: |
npm run doc-upload
npm run doc-cloudfront
env:
AWS_DEFAULT_REGION: ${{ inputs.REGION }}
AWS_ACCESS_KEY_ID: ${{ inputs.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ inputs.AWS_SECRET_ACCESS_KEY }}
S3_BUCKET: ${{ inputs.S3_BUCKET }}
CLOUDFRONT_DISTRIBUTION_ID: ${{ inputs.CLOUDFRONT_ID }}
shell: bash
11 changes: 11 additions & 0 deletions .github/actions/es-lint/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: ESLint
description: Run ESLint
runs:
using: "composite"
steps:
- name: Install deps
run: npm ci --silent
shell: bash
- name: Run lint
run: npm run --silent test:lint
shell: bash
22 changes: 22 additions & 0 deletions .github/actions/functional-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Functional Tests
description: Run Functional Tests
inputs:
CYPRESS_RECORD_KEY_DOC:
description: Cypress project key
required: true
runs:
using: "composite"
steps:
- name: Start Kuzzle stack
run: |
sudo sysctl -w vm.max_map_count=262144
./.ci/start_kuzzle.sh
shell: bash
- name: Build Kuzzle
run: |
npm install
npm run build
shell: bash
- name: Run functional tests
run: npm run test:functional
shell: bash
18 changes: 18 additions & 0 deletions .github/actions/snippet-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Documentation Snippets Tests
description: Run Documentation Snippets Tests
inputs:
CYPRESS_RECORD_KEY_DOC:
description: Cypress project key
required: true
runs:
using: "composite"
steps:
- name: Build the Stack
run: |
npm install
npm run build
shell: bash
- run: npm run doc-testing
env:
CYPRESS_RECORD_KEY_DOC: ${{ inputs.CYPRESS_RECORD_KEY_DOC }}
shell: bash
35 changes: 35 additions & 0 deletions .github/actions/tests-ac/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Test Admin Console
description: Run Test Admin Console
inputs:
sdk-version:
description: Javascript SDK version to use
required: true
cypress-key:
description: Cypress record key
required: true
runs:
using: "composite"
steps:
- name: Start Kuzzle stack
run: |
export GITHUB_DIR=$(pwd)
sudo sysctl -w vm.max_map_count=262144
npm ci
shell: bash
- name: Setup Admin console
run: |
git clone -b 4-dev https://github.com/kuzzleio/kuzzle-admin-console /tmp/admin-console
cp -f ./cypress.json /tmp/admin-console/cypress.json
cd /tmp/admin-console
npm ci
npm install kuzzle-sdk-v${{ inputs.sdk-version }}@$GITHUB_DIR
shell: bash
- name: Run e2e tests
run: |
cd /tmp/admin-console/test/e2e/run-test
npm ci
cd /tmp/admin-console
CYPRESS_RETRIES=5 npm run test:e2e -- --backend=2
env:
CYPRESS_RECORD_KEY: ${{ inputs.cypress-key }}
shell: bash
15 changes: 15 additions & 0 deletions .github/actions/unit-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Unit Tests
description: Run Unit Tests
runs:
using: "composite"
steps:
- name: Run build
run: |
npm install
npm run build
shell: bash
- name: Run tests
run: |
npm run test:unit
cat ./coverage/lcov.info | ./node_modules/.bin/codecov
shell: bash
143 changes: 143 additions & 0 deletions .github/workflows/pull_request.workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Pull request checks

on: [pull_request]

jobs:
lint:
name: Lint
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: "12"
- uses: ./.github/actions/es-lint

unit-tests:
name: Unit Tests
runs-on: ubuntu-18.04
needs: [lint]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: "12"
- uses: ./.github/actions/unit-tests

functional-tests:
name: Functional Tests
runs-on: ubuntu-18.04
needs: [unit-tests]
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: "12"
- uses: ./.github/actions/functional-tests
with:
CYPRESS_RECORD_KEY_DOC: ${{ secrets.CYPRESS_RECORD_KEY_DOC }}

admin-console-tests:
name: Admin Console Tests
runs-on: ubuntu-18.04
needs: [unit-tests]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1
with:
node-version: "12"
- uses: ./.github/actions/tests-ac
with:
sdk-version: 7
cypress-key: ${{ secrets.CYPRESS_RECORD_KEY }}

documentation-dead-links:
name: Dead links
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: "12"
- uses: ./.github/actions/dead-links

documentation-snippet-tests:
name: Documentation Snippet Tests
needs: [unit-tests]
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: "12"
- uses: ./.github/actions/snippet-tests
with:
CYPRESS_RECORD_KEY_DOC: ${{ secrets.CYPRESS_RECORD_KEY_DOC }}
Loading