chore: updated packages #99
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: typescript | |
| on: | |
| push: | |
| branches: '**' | |
| paths-ignore: | |
| - '.github/!(workflows)/**' | |
| - 'solutions/rust/**' | |
| - 'solutions/python/**' | |
| pull_request: | |
| branches: '**' | |
| paths-ignore: | |
| - '.github/!(workflows)/**' | |
| - 'solutions/rust/**' | |
| - 'solutions/python/**' | |
| env: | |
| TURBO_TOKEN: ${{ secrets.VERCEL_TOKEN }} | |
| TURBO_TEAM: ${{ vars.TURBO_TEAM }} | |
| TURBO_REMOTE_ONLY: true | |
| BUILD_REASON: 'publish' # publint would like to see the .d.ts files | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: lint:${{ matrix.lint-kind }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| lint-kind: [tsc, es, md, format, style, svelte, depcheck] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: setup node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| run: pnpm install | |
| - name: lint:${{ matrix.lint-kind }} | |
| run: pnpm run lint:${{ matrix.lint-kind }} | |
| typedoc: | |
| name: typedoc | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: setup node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| run: pnpm install | |
| - name: typedoc | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' | |
| run: pnpm run typedoc | |
| - name: prepare pages (use index.html as 404.html) | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| run: | | |
| cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html | |
| - name: setup pages | |
| uses: actions/configure-pages@v3 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| - name: upload artifact | |
| uses: actions/upload-pages-artifact@v2 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| with: | |
| path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }} | |
| vitepress: | |
| name: vitepress | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: setup node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| run: pnpm install | |
| - name: vitepress | |
| if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| run: pnpm run vitepress | |
| - name: prepare pages (use index.html as 404.html) | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| run: | | |
| cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html | |
| - name: setup pages | |
| uses: actions/configure-pages@v3 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| - name: upload artifact | |
| uses: actions/upload-pages-artifact@v2 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| with: | |
| path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }} | |
| test: | |
| name: test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: setup node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| run: pnpm install | |
| - name: test | |
| run: pnpm run test | |
| - name: upload coverage result to codacy | |
| uses: codacy/codacy-coverage-reporter-action@v1 | |
| with: | |
| project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
| coverage-reports: coverage/lcov.info | |
| language: ${{ vars.CODACY_REPORT_LANGUAGE }} | |
| - name: upload coverage result to codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: coverage | |
| - name: prepare pages (use index.html as 404.html) | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| run: | | |
| cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html | |
| - name: setup pages | |
| uses: actions/configure-pages@v3 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| - name: upload artifact | |
| uses: actions/upload-pages-artifact@v2 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| with: | |
| path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }} | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: setup node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| run: pnpm install | |
| - name: build | |
| env: | |
| BASE_HREF: '/${{ github.event.repository.name }}' | |
| PLATFORM: 'github-pages' | |
| run: pnpm run build | |
| - name: publint | |
| run: pnpm run publint | |
| - name: prepare pages (use index.html as 404.html) | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| run: | | |
| cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html | |
| - name: setup pages | |
| uses: actions/configure-pages@v3 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| - name: upload artifact | |
| uses: actions/upload-pages-artifact@v2 | |
| if: | | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR != '' && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| with: | |
| path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }} | |
| deploy-github-pages: | |
| name: deploy github pages | |
| if: | | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' && | |
| vars.PAGES_DEPLOY_ARTIFACT_DIR && ( | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' || | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' || | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' || | |
| vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' | |
| ) | |
| runs-on: ubuntu-latest | |
| needs: [build, test, lint, typedoc, vitepress] | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: deploy to github pages | |
| uses: actions/deploy-pages@v1 | |
| id: deployment | |
| collect: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| non_published_packages: | |
| ${{ steps.collect_packages.outputs.non_published_packages }} | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| lfs: true | |
| - name: collect public packages | |
| id: collect_packages | |
| uses: AlexAegis/collect-public-packages@v1 | |
| release: | |
| name: | | |
| release ${{ matrix.package.package_name }}@${{ matrix.package.package_version }} | |
| if: | | |
| needs.collect.outputs.non_published_packages && | |
| github.ref_name == github.event.repository.default_branch && | |
| github.event_name != 'pull_request' | |
| runs-on: ubuntu-latest | |
| needs: [collect, build, test, lint, typedoc, vitepress] | |
| strategy: | |
| matrix: | |
| package: ${{ fromJSON(needs.collect.outputs.non_published_packages) }} | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| - name: setup node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 18 | |
| registry-url: 'https://registry.npmjs.org' | |
| - name: pnpm setup | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| run_install: false | |
| - name: get pnpm store directory | |
| id: pnpm-cache | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: cache | |
| id: cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| .cache | |
| key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}- | |
| - name: install | |
| run: pnpm install | |
| - name: | | |
| build ${{ matrix.package.package_name }}@${{ matrix.package.package_version }} | |
| run: | | |
| npx turbo run build-lib_ --force --filter="${{ matrix.package.package_name }}" --concurrency 16 --cache-dir=.cache/turbo | |
| - name: | | |
| publint ${{ matrix.package.package_name }}@${{ matrix.package.package_version }} | |
| run: | | |
| npx turbo run publint_ --filter="${{ matrix.package.package_name }}" --concurrency 16 --cache-dir=.cache/turbo | |
| - name: | | |
| release ${{ matrix.package.package_name }}@${{ matrix.package.package_version }} on npm | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: | | |
| pnpm publish --access public --provenance ${{ matrix.package.package_path_from_root_package }}/dist/ |