File: ci-release.yml

package info (click to toggle)
node-nopt 9.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 284 kB
  • sloc: javascript: 1,329; makefile: 4
file content (147 lines) | stat: -rw-r--r-- 4,471 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# This file is automatically added by @npmcli/template-oss. Do not edit.

name: CI - Release

on:
  workflow_dispatch:
    inputs:
      ref:
        required: true
        type: string
        default: main
  workflow_call:
    inputs:
      ref:
        required: true
        type: string
      check-sha:
        required: true
        type: string

permissions:
  contents: read
  checks: write

jobs:
  lint-all:
    name: Lint All
    if: github.repository_owner == 'npm'
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: ${{ inputs.ref }}
      - name: Setup Git User
        run: |
          git config --global user.email "npm-cli+bot@github.com"
          git config --global user.name "npm CLI robot"
      - name: Create Check
        id: create-check
        if: ${{ inputs.check-sha }}
        uses: ./.github/actions/create-check
        with:
          name: "Lint All"
          token: ${{ secrets.GITHUB_TOKEN }}
          sha: ${{ inputs.check-sha }}
      - name: Setup Node
        uses: actions/setup-node@v4
        id: node
        with:
          node-version: 22.x
          check-latest: contains('22.x', '.x')
      - name: Install Latest npm
        uses: ./.github/actions/install-latest-npm
        with:
          node: ${{ steps.node.outputs.node-version }}
      - name: Install Dependencies
        run: npm i --ignore-scripts --no-audit --no-fund
      - name: Lint
        run: npm run lint --ignore-scripts
      - name: Post Lint
        run: npm run postlint --ignore-scripts
      - name: Conclude Check
        uses: LouisBrunner/checks-action@v1.6.0
        if: steps.create-check.outputs.check-id && always()
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          conclusion: ${{ job.status }}
          check_id: ${{ steps.create-check.outputs.check-id }}

  test-all:
    name: Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
    if: github.repository_owner == 'npm'
    strategy:
      fail-fast: false
      matrix:
        platform:
          - name: Linux
            os: ubuntu-latest
            shell: bash
          - name: macOS
            os: macos-latest
            shell: bash
          - name: macOS
            os: macos-13
            shell: bash
        node-version:
          - 20.17.0
          - 20.x
          - 22.9.0
          - 22.x
        exclude:
          - platform: { name: macOS, os: macos-13, shell: bash }
            node-version: 20.17.0
          - platform: { name: macOS, os: macos-13, shell: bash }
            node-version: 20.x
          - platform: { name: macOS, os: macos-13, shell: bash }
            node-version: 22.9.0
          - platform: { name: macOS, os: macos-13, shell: bash }
            node-version: 22.x
    runs-on: ${{ matrix.platform.os }}
    defaults:
      run:
        shell: ${{ matrix.platform.shell }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: ${{ inputs.ref }}
      - name: Setup Git User
        run: |
          git config --global user.email "npm-cli+bot@github.com"
          git config --global user.name "npm CLI robot"
      - name: Create Check
        id: create-check
        if: ${{ inputs.check-sha }}
        uses: ./.github/actions/create-check
        with:
          name: "Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}"
          token: ${{ secrets.GITHUB_TOKEN }}
          sha: ${{ inputs.check-sha }}
      - name: Setup Node
        uses: actions/setup-node@v4
        id: node
        with:
          node-version: ${{ matrix.node-version }}
          check-latest: contains(matrix.node-version, '.x')
      - name: Install Latest npm
        uses: ./.github/actions/install-latest-npm
        with:
          node: ${{ steps.node.outputs.node-version }}
      - name: Install Dependencies
        run: npm i --ignore-scripts --no-audit --no-fund
      - name: Add Problem Matcher
        run: echo "::add-matcher::.github/matchers/tap.json"
      - name: Test
        run: npm test --ignore-scripts
      - name: Conclude Check
        uses: LouisBrunner/checks-action@v1.6.0
        if: steps.create-check.outputs.check-id && always()
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          conclusion: ${{ job.status }}
          check_id: ${{ steps.create-check.outputs.check-id }}