From e8f8958f797c77b2f7623cd9b8208ec42d3c4cf0 Mon Sep 17 00:00:00 2001 From: Rifa Achrinza <25147899+achrinza@users.noreply.github.com> Date: Sun, 8 May 2022 16:40:43 +0800 Subject: [PATCH] ci: update environment Signed-off-by: Rifa Achrinza <25147899+achrinza@users.noreply.github.com> --- .github/workflows/ci.yaml | 119 ++++++++++++++++++++++++++++++++++++++ .npmrc | 2 + 2 files changed, 121 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100644 .npmrc diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..de58a15 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,119 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + branches: + - master + schedule: + - cron: '0 2 * * 1' # At 02:00 on Monday + +permissions: {} + +jobs: + test: + name: Test + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + matrix: + node-version: [10, 12, 14, 16, 17, 18] + db-image: + - elasticsearch:7.17.3 + - elasticsearch:8.2.0 + - opensearchproject/opensearch:1.3.2 + fail-fast: false + services: + db: + image: ${{ matrix.db-image }} + ports: ["9200:9200"] + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - name: + uses: supercharge/mongodb-github-action@1.6.0 + with: + mongodb-version: ${{ matrix.mongodb-version }} + - name: Bootstrap project + run: npm ci --ignore-scripts + - name: Run tests + run: npm test + - name: Publish coverage report to Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: run-es@${{ matrix.db-version }}-node@${{ matrix.node-version }} + parallel: true + + posttest: + name: Post-Test + needs: test + runs-on: ubuntu-latest + steps: + - name: Coveralls finished + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.github_token }} + parallel-finished: true + + code-lint: + name: Code Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 16 + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Bootstrap project + run: npm ci --ignore-scripts + - name: Verify code linting + run: npm run lint + + commit-lint: + name: Commit Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Use Node.js 16 + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Bootstrap project + run: npm ci --ignore-scripts + - name: Verify commit linting + run: | + npm exec \ + --no-install \ + --package=@commitlint/cli \ + -- \ + commitlint \ + --verbose \ + --from=origin/master \ + --to=HEAD + + codeql: + name: CodeQL + runs-on: ubuntu-latest + permissions: + # See: https://github.com/github/codeql-action/blob/008b2cc71c4cf3401f45919d8eede44a65b4a322/README.md#usage + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: 'javascript' + config-file: ./.github/codeql/codeql-config.yml + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..34fbbbb --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +package-lock=true +scripts-prepend-node-path=true