diff --git a/.github/workflows/merge-to-master.yml b/.github/workflows/merge-to-master.yml new file mode 100644 index 0000000..8eb00c0 --- /dev/null +++ b/.github/workflows/merge-to-master.yml @@ -0,0 +1,36 @@ +name: 'Merge to master' + +on: + push: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [14.x] + + steps: + - name: Get branch name (merge) + if: github.event_name != 'pull_request' + shell: bash + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV + + - name: Get branch name (pull request) + if: github.event_name == 'pull_request' + shell: bash + run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF} | tr / -)" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm ci + - run: npm run test-ci + env: + COVERALLS_SERVICE_NAME: GithubActions + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + COVERALLS_GIT_BRANCH: ${{ env.BRANCH_NAME }} diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml deleted file mode 100644 index 492e91c..0000000 --- a/.github/workflows/nodejs.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Node CI - -on: [push] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [12.16.3] - - steps: - - uses: actions/checkout@v1 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: npm ci, build, and test - run: | - npm ci - npm run lint - npm run build - npm test - env: - CI: true diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..3064e1c --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,42 @@ +name: 'Pull Request' +on: + pull_request: + types: [opened, reopened, synchronize] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node: [12, 14, 16, 18, 20] + name: Node ${{ matrix.node }} + steps: + - name: 'Checkout latest code' + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + - name: Install dependencies + run: npm ci + - name: Run tests + run: npm run test + + lint: + name: 'ESLint' + runs-on: ubuntu-latest + steps: + - name: Checkout latest code + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up node + uses: actions/setup-node@v3 + with: + node-version: '16' + - name: Install dependencies + run: npm install + - name: Run ESLint + run: npm run lint:check diff --git a/package.json b/package.json index 3fb7c83..c719065 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,8 @@ "generate-and-deploy-docs": "npm run generate-docs && gh-pages --dist docs --dest docs", "watch": "webpack --watch --config webpack.config.js", "prepublishOnly": "npm run build", - "lint": "eslint ./src", + "lint:check": "eslint ./src", + "lint:fix": "eslint --fix ./src", "testem": "testem", "test": "nyc --reporter=html --reporter=text ava", "test:watch": "ava --watch",