Skip to content

Commit

Permalink
Merge pull request #51 from DeepLcom/add-gh-ci
Browse files Browse the repository at this point in the history
ci: Add GitHub CI
  • Loading branch information
daniel-jones-dev authored Jul 31, 2024
2 parents 196cade + 357f50c commit 68ab389
Showing 1 changed file with 173 additions and 0 deletions.
173 changes: 173 additions & 0 deletions .github/workflows/run_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
name: NodeJS

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '30 0 * * *'

env:
SECRET_DETECTION_JSON_REPORT_FILE: "gitleaks.json"

jobs:
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Run eslint check
run: npm run lint

audit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Run npm audit
run: |
npm audit --production
# Suppressing NPM audit failures on dev dependencies due to CVE-2022-25883
# in semver <7.5.2, used by test dependencies.
# See: https://github.com/npm/node-semver/pull/564
# Currently npm audit fix cannot resolve this issue.
npm audit || echo "Suppressing npm audit failures for dev dependencies"
format:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Run format check
run: npm run format

secret_detection:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install and run secret detection
run: |
wget https://github.com/gitleaks/gitleaks/releases/download/v8.18.4/gitleaks_8.18.4_linux_x64.tar.gz
tar -xzf gitleaks_8.18.4_linux_x64.tar.gz
EXITCODE=0
./gitleaks detect -r ${SECRET_DETECTION_JSON_REPORT_FILE} --source . --log-opts="--all --full-history" || EXITCODE=$?
if [[ $EXITCODE -ne 0 ]]; then
exit $EXITCODE
fi
- name: Upload secret detection artifact
uses: actions/upload-artifact@v4
with:
name: secret-detection-results
path: gitleaks.json

build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Build
run: |
npm run clean
npm run build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: dist


# Test and `npm publish` stage are disabled for now. Code needs to be tested

#######################################################
# test:
# runs-on: ${{ matrix.config.docker-image }}
# strategy:
# matrix:
# config:
# - docker-image: 'node:18-alpine'
# - docker-image: 'node:12-alpine'
# use-mock-server: use-mock-server
# - docker-image: 'node:14-alpine'
# use-mock-server: use-mock-server
# - docker-image: 'node:16-alpine'
# use-mock-server: use-mock-server
# - docker-image: 'node:17-alpine'
# use-mock-server: use-mock-server
# - docker-image: 'node:18-alpine'
# use-mock-server: use-mock-server
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Run tests
# run: |
# if [[ ! -z "${{ matrix.config.use-mock-server }}" ]]; then
# echo "Using mock server"
# export DEEPL_SERVER_URL=http://deepl-mock:3000
# export DEEPL_MOCK_SERVER_PORT=3000
# export DEEPL_PROXY_URL=http://deepl-mock:3001
# export DEEPL_MOCK_PROXY_SERVER_PORT=3001
# fi
# npm install
# npm run test:coverage
# - name: Upload test results
# uses: actions/upload-artifact@v4
# with:
# name: test-results
# path: coverage/clover.xml

# examples:
# runs-on: ${{ matrix.docker-image }}
# strategy:
# matrix:
# docker-image:
# - 'node:12-alpine'
# - 'node:14-alpine'
# - 'node:16-alpine'
# - 'node:17-alpine'
# - 'node:18-alpine'
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Install dependencies
# run: npm install --production
# - name: Run examples
# run: |
# export DEEPL_AUTH_KEY=mock-auth-key
# export DEEPL_SERVER_URL=http://deepl-mock:3000
# export DEEPL_MOCK_SERVER_PORT=3000
# export DEEPL_PROXY_URL=http://deepl-mock:3001
# export DEEPL_MOCK_PROXY_SERVER_PORT=3001
# cd $CI_PROJECT_DIR/examples/commonjs
# npm install
# node index.js
# cd $CI_PROJECT_DIR/examples/esmodule
# npm install
# node index.js
# cd $CI_PROJECT_DIR/examples/typescript
# npm install
# npm run build
# node index.js

# publish_to_npm:
# runs-on: ubuntu-latest
# needs: build
# if: startsWith(github.ref, 'refs/tags/v')
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Publish to NPM
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
# run: npm publish

0 comments on commit 68ab389

Please sign in to comment.