name: Test on: [workflow_dispatch, workflow_call] jobs: test: name: Test strategy: matrix: os: [ubuntu-latest, macos-latest] timezone: [Etc/GMT, Asia/Shanghai, America/New_York] 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: '20' - 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