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 diff --git a/package.json b/package.json index 45b01b7..8c20296 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "node": ">= 0.6.0" }, "scripts": { - "test": "grunt test && tsc --noEmit ./test/type-test.ts", + "test": "grunt test && npm run test-types", + "test-types": "tsc --noEmit ./test/type-test.ts", "ci": "grunt ci", "dist": "grunt dist", "watch": "grunt watch"