name: Test on: [workflow_dispatch, workflow_call] jobs: test: name: Test strategy: matrix: os: [ubuntu-latest] timezone: [Etc/GMT, Asia/Shanghai, America/New_York] node-version: [22] include: - os: macos-latest timezone: America/New_York node-versoin: 22 - os: ubuntu-latest timezone: Etc/GMT node-version: 16 - os: ubuntu-latest timezone: Asia/Shanghai node-version: 14 runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm ci - name: Download artifacts uses: actions/download-artifact@v3 with: name: dist-${{ matrix.os }} path: dist - name: Run Test run: TZ=${{ matrix.timezone }} npm test - name: Archive npm failure logs uses: actions/upload-artifact@v3 if: failure() with: name: npm-logs path: ~/.npm/_logs