| | |
| | | name: Build and Test |
| | | |
| | | on: |
| | | pull_request: |
| | | branches: |
| | | - v4 |
| | | push: |
| | | branches: |
| | | - v4-alpha # TODO: update |
| | | - v4 |
| | | workflow_dispatch: |
| | | |
| | | jobs: |
| | | build-and-test: |
| | | runs-on: [windows-latest, macos-13, ubuntu-22.04] |
| | | if: ${{ github.repository == 'jackyzha0/quartz' }} |
| | | strategy: |
| | | matrix: |
| | | os: [windows-latest, macos-latest, ubuntu-latest] |
| | | runs-on: ${{ matrix.os }} |
| | | permissions: |
| | | contents: write |
| | | steps: |
| | | - uses: actions/checkout@v3 |
| | | - uses: actions/checkout@v4 |
| | | with: |
| | | fetch-depth: 0 |
| | | |
| | | - name: Setup Node |
| | | uses: actions/setup-node@v3 |
| | | uses: actions/setup-node@v4 |
| | | with: |
| | | node-version: 18 |
| | | node-version: 22 |
| | | |
| | | - name: Cache dependencies |
| | | uses: actions/cache@v3 |
| | | uses: actions/cache@v4 |
| | | with: |
| | | path: ~/.npm |
| | | key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} |
| | |
| | | - name: Test |
| | | run: npm test |
| | | |
| | | - name: Ensure Quartz builds |
| | | run: npx quartz build |
| | | - name: Ensure Quartz builds, check bundle info |
| | | run: npx quartz build --bundleInfo -d docs |
| | | |
| | | publish-tag: |
| | | if: ${{ github.repository == 'jackyzha0/quartz' && github.ref == 'refs/heads/v4' }} |
| | | runs-on: ubuntu-latest |
| | | permissions: |
| | | contents: write |
| | | steps: |
| | | - uses: actions/checkout@v4 |
| | | with: |
| | | fetch-depth: 0 |
| | | - name: Setup Node |
| | | uses: actions/setup-node@v4 |
| | | with: |
| | | node-version: 22 |
| | | - name: Get package version |
| | | run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV |
| | | - name: Create release tag |
| | | uses: pkgdeps/git-tag-action@v3 |
| | | with: |
| | | github_token: ${{ secrets.GITHUB_TOKEN }} |
| | | github_repo: ${{ github.repository }} |
| | | version: ${{ env.PACKAGE_VERSION }} |
| | | git_commit_sha: ${{ github.sha }} |
| | | git_tag_prefix: "v" |