name: 'ci' on: push: branches: [master] pull_request: branches: [master] jobs: lint: runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v2' - name: 'Use Node.js' uses: 'actions/setup-node@v2.1.5' with: node-version: '16.x' - name: 'Cache dependencies' uses: 'actions/cache@v2.1.6' with: path: '.npm' key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - name: 'Install' run: 'npm ci --cache .npm --prefer-offline' - run: 'npm run lint:commit -- --to "${{ github.sha }}"' - run: 'npm run lint:editorconfig' - run: 'npm run lint:markdown' - run: 'npm run lint:typescript' build: runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v2' - name: 'Use Node.js' uses: 'actions/setup-node@v2.1.5' with: node-version: '16.x' - name: 'Cache dependencies' uses: 'actions/cache@v2.1.6' with: path: '.npm' key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - name: 'Install' run: 'npm ci --cache .npm --prefer-offline' - name: 'Build' run: 'npm run build' test: runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v2' - name: 'Use Node.js' uses: 'actions/setup-node@v2.1.5' with: node-version: '16.x' - name: 'Cache dependencies' uses: 'actions/cache@v2.1.6' with: path: '.npm' key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - name: 'Install' run: 'npm ci --cache .npm --prefer-offline' - name: 'Test' run: 'npm run test' challenges: runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v2' - name: 'Use Docker' uses: 'actions-hub/docker/cli@master' env: SKIP_LOGIN: true - name: 'Use Node.js' uses: 'actions/setup-node@v2.1.5' with: node-version: '16.x' - name: 'Cache dependencies' uses: 'actions/cache@v2.1.6' with: path: '.npm' key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - name: 'Install' run: 'npm ci --cache .npm --prefer-offline' - name: 'Build' run: 'npm run build' - name: 'Install programming-challenges' run: 'npm install --global' - name: 'Test' run: 'programming-challenges run test --affected'