Skip to content

docs: ✏️ u[dated dpcs #293

docs: ✏️ u[dated dpcs

docs: ✏️ u[dated dpcs #293

Workflow file for this run

name: Workflow
on:
push:
branches:
- main
- beta
- alpha
pull_request:
branches:
- main
- beta
- alpha
jobs:
prepare-environment:
name: Prepare environment
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: "22.21.1"
cache: "pnpm"
env:
FORCE_COLOR: 0
- name: Install node_modules
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: pnpm install --frozen-lockfile
- name: Cache node_modules
if: steps.cache-node-modules.outputs.cache-hit != 'true'
uses: actions/cache/save@v3
with:
path: |
'**/node_modules'
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
tests:
name: Run tests
runs-on: ubuntu-latest
needs: prepare-environment
timeout-minutes: 40
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22.21.1"
cache: "pnpm"
- name: Restore node_modules
uses: actions/cache/restore@v3
id: cache-node-modules
with:
path: |
**/node_modules
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install node_modules on cache miss
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Lint
run: pnpm lint
- name: Typecheck
run: pnpm typecheck
- name: Test
run: pnpm test --coverage
- name: Send Report
uses: qltysh/qlty-action/coverage@v1
with:
token: ${{ secrets.QLTY_COVERAGE_TOKEN }}
files: |
${{github.workspace}}/packages/adapter-axios/coverage/lcov.info:lcov
${{github.workspace}}/packages/adapter-graphql/coverage/lcov.info:lcov
${{github.workspace}}/packages/cli/coverage/lcov.info:lcov
${{github.workspace}}/packages/core/coverage/lcov.info:lcov
${{github.workspace}}/packages/plugin-devtools/coverage/lcov.info:lcov
${{github.workspace}}/packages/plugin-eslint/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/coverage/lcov.info:lcov
${{github.workspace}}/packages/sockets/coverage/lcov.info:lcov
release:
name: Release
if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/alpha' }}
runs-on: ubuntu-latest
needs: [tests]
# `released`: whether semantic-release created a new tag — downstream automation (e.g. HyperFlow dispatch)
# must gate on this; `flow-release.yml` does not re-check it (see comment block there).
outputs:
released: ${{ steps.check_release.outputs.released }}
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22.21.1"
cache: "pnpm"
registry-url: "https://registry.npmjs.org"
- name: Restore node_modules
uses: actions/cache/restore@v3
id: cache-node-modules
with:
path: |
**/node_modules
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install node_modules on cache miss
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Get latest tag before release
id: pre_release_tag
run: echo "tag=$(git describe --tags --abbrev=0 || echo 'none')" >> $GITHUB_OUTPUT
- name: Publish
run: pnpm release
env:
GITHUB_TOKEN: ${{ github.token }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Get latest tag after release
id: post_release_tag
run: |
git fetch --tags
echo "tag=$(git describe --tags --abbrev=0 || echo 'none')" >> $GITHUB_OUTPUT
- name: Check if a new tag was created
id: check_release
run: |
if [[ "${{ steps.pre_release_tag.outputs.tag }}" == "${{ steps.post_release_tag.outputs.tag }}" ]]; then
echo "No new tag was created"
echo "released=false" >> $GITHUB_OUTPUT
else
echo "New tag ${{ steps.post_release_tag.outputs.tag }} was created"
echo "released=true" >> $GITHUB_OUTPUT
fi