From b8e5db1fad85cd190fdda185603c8751fef3125f Mon Sep 17 00:00:00 2001 From: Rob Brackett Date: Tue, 9 Jan 2024 21:42:43 +0000 Subject: [PATCH] Add basic CI workflow on GitHub Actions --- .github/workflows/ci.yml | 102 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..534308a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,102 @@ +name: Continuous Integration + +on: + pull_request: {} + # push: + # branches: + # - main + push: {} # Just for now testing on a fork; should ultimately only be on pushes to main. + +jobs: + lint: + name: Lint Code + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm install + + - name: JSHint + run: node_modules/.bin/grunt jshint + + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm install + + - name: Build + run: node_modules/.bin/grunt concat uglify + + node-tests: + runs-on: ubuntu-latest + strategy: + matrix: + node_version: [8, 10, 12, 14, 16, 18, 20] + + steps: + - uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node_version }} + cache: npm + + - name: Install dependencies + run: npm install + + - name: Unit Tests + run: node_modules/.bin/grunt jasmine_node + + browser-tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm install + + - name: Unit Tests + run: node_modules/.bin/grunt test + + types: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm install + + - name: Typescript Tests + run: npm run test-types