name: CI on: - push - pull_request env: FORCE_COLOR: 2 NODE_LINT: 16 jobs: lint: runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: "${{ env.NODE_LINT }}" cache: npm - name: Install npm dependencies run: npm ci - name: Lint run: npm run lint test: name: Node ${{ matrix.node }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] node: [12, 14, 16] include: - os: windows-latest node: 16 - os: macos-latest node: 16 steps: - name: Clone repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: npm - name: Install npm dependencies run: npm ci - name: Run tests run: npm run uvu test-extended: name: Node ${{ matrix.node }} on ${{ matrix.os }} (Extended) runs-on: ${{ matrix.os }} env: HUGO_BIN_BUILD_TAGS: extended strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] node: [16] steps: - name: Clone repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: npm - name: Install npm dependencies run: npm ci - name: Run tests run: npm run uvu publish: if: github.repository == 'fenneclab/hugo-bin' && startsWith(github.ref, 'refs/tags/') needs: [lint, test, test-extended] runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 16 registry-url: 'https://registry.npmjs.org' - name: Publish on npm run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}