chore: release #17385
This file contains 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: CI | |
on: | |
merge_group: | |
pull_request: | |
types: ["opened", "edited", "reopened", "synchronize"] | |
push: | |
branches: | |
- main | |
jobs: | |
manypkg: | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: 20 | |
cache: "pnpm" | |
- run: | | |
pnpm install | |
pnpm exec manypkg check | |
typecheck: | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: 20 | |
cache: "pnpm" | |
- run: | | |
pnpm install | |
pnpm typecheck | |
lint: | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: 20 | |
cache: "pnpm" | |
- run: | | |
pnpm install | |
pnpm build | |
pnpm run lint | |
format: | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: 20 | |
cache: "pnpm" | |
- run: | | |
pnpm install | |
pnpm run format:ci | |
test: | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
needs: [typecheck, format] | |
strategy: | |
matrix: | |
node: ["20"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 10 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: "pnpm" | |
- run: | | |
pnpm install | |
pnpm run test:unit:coverage | |
- uses: codecov/codecov-action@v4.6.0 | |
with: | |
# files: packages/**/coverage/cobertura-coverage.xmls | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
# accessibility: | |
# runs-on: ubuntu-22.04 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# fetch-depth: '0' | |
# - uses: pnpm/action-setup@v3.0.0 | |
# - name: Use Node.js | |
# uses: actions/setup-node@v4.0.2 | |
# with: | |
# node-version: 20 | |
# cache: 'pnpm' | |
# - run: pnpm install | |
# - run: pnpm run build | |
# - run: pnpm install | |
# - run: pnpm run test:a11y | |
build: | |
strategy: | |
matrix: | |
node: ["20"] | |
runs-on: ubuntu-24.04 | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
needs: [typecheck, format] | |
steps: | |
- uses: actions/checkout@v4 # v4.1.4 | |
- uses: pnpm/action-setup@v4.0.0 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.0.4 | |
with: | |
node-version: ${{ matrix.node }} | |
- run: | | |
pnpm install | |
pnpm run build | |
deploy: | |
runs-on: ubuntu-24.04 | |
env: | |
IMAGE_NAME: rg.fr-par.scw.cloud/ultraviolet/storybook | |
DEPLOYMENT_NAME: "storybook" | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_REMOTE_ONLY: true | |
needs: [typecheck, build] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Inject slug/short variables | |
uses: rlespinasse/github-slug-action@v4 | |
- name: Export custom variables | |
run: | | |
SAFE_GITHUB_HEAD_REF_SLUG_URL=$(echo $GITHUB_HEAD_REF_SLUG_URL-$DEPLOYMENT_NAME | rev | cut -c-37 | rev | awk '{gsub(/^-/, ""); print}') | |
([[ $GITHUB_REF == 'refs/heads/main' ]] && echo "STORYBOOK_BRANCH_SLUG=main" || echo "STORYBOOK_BRANCH_SLUG=$SAFE_GITHUB_HEAD_REF_SLUG_URL") >> $GITHUB_ENV | |
- name: Start deployment | |
uses: bobheadxi/deployments@v1.5.0 | |
id: deployment | |
with: | |
step: start | |
token: ${{ secrets.GH_TOKEN }} | |
env: ${{ env.DEPLOYMENT_NAME }} | |
ref: ${{ github.head_ref }} | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: rg.fr-par.scw.cloud/ultraviolet | |
username: nologin | |
password: ${{ secrets.SCW_SECRET_KEY }} | |
- name: Build | |
uses: docker/build-push-action@v6 | |
env: | |
IMAGE: ${{ env.IMAGE_NAME }}:${{ env.STORYBOOK_BRANCH_SLUG }} | |
SOURCE_DATE_EPOCH: 0 | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
with: | |
push: true | |
tags: ${{ env.IMAGE }} | |
file: Dockerfile | |
cache-from: type=local,src=/tmp/docs/.buildx-cache | |
cache-to: type=local,dest=/tmp/docs/.buildx-cache-new,mode=max | |
- name: Set scw_max_concurrency | |
id: set-max-concurrency | |
run: | | |
if [[ "${{ env.STORYBOOK_BRANCH_SLUG }}" == "main" ]]; then | |
echo "SCW_MAX_CONCURRENCY=30" >> $GITHUB_ENV | |
else | |
echo "SCW_MAX_CONCURRENCY=10" >> $GITHUB_ENV | |
fi | |
- name: Set scw_min_scale | |
id: set-min-scale | |
run: | | |
if [[ "${{ env.STORYBOOK_BRANCH_SLUG }}" == "main" ]]; then | |
echo "SCW_MIN_SCALE=1" >> $GITHUB_ENV | |
else | |
echo "SCW_MIN_SCALE=0" >> $GITHUB_ENV | |
fi | |
- name: Set scw_limit | |
id: set-cpu-limit | |
run: | | |
if [[ "${{ env.STORYBOOK_BRANCH_SLUG }}" == "main" ]]; then | |
echo "SCW_CPU_LIMIT=500" >> $GITHUB_ENV | |
echo "SCW_MEMORY_LIMIT=1024" >> $GITHUB_ENV | |
else | |
echo "SCW_CPU_LIMIT=250" >> $GITHUB_ENV | |
echo "SCW_MEMORY_LIMIT=256" >> $GITHUB_ENV | |
fi | |
- name: Deploy Serverless Container Scaleway | |
uses: philibea/scaleway-containers-deploy@v1.1.5 | |
id: deploy | |
with: | |
type: "deploy" | |
scw_dns: "storybook.ultraviolet.scaleway.com" | |
root_zone: ${{ env.STORYBOOK_BRANCH_SLUG == 'main' }} | |
scw_access_key: ${{ secrets.SCW_ACCESS_KEY }} | |
scw_secret_key: ${{ secrets.SCW_SECRET_KEY }} | |
scw_containers_namespace_id: ${{ secrets.SCW_CONTAINERS_NAMESPACE_ID }} | |
scw_environment_variables: "GITHUB=DEPLOY" | |
scw_registry: ${{ env.IMAGE_NAME }}:${{ env.STORYBOOK_BRANCH_SLUG }} | |
scw_min_scale: ${{ env.SCW_MIN_SCALE }} | |
scw_cpu_limit: ${{ env.SCW_CPU_LIMIT }} | |
scw_max_concurrency: ${{ env.SCW_MAX_CONCURRENCY }} | |
scw_sandbox: "v2" | |
scw_memory_limit: ${{ env.SCW_MEMORY_LIMIT }} | |
- name: Update deployment status | |
uses: bobheadxi/deployments@v1.5.0 | |
if: always() | |
with: | |
step: finish | |
env: ${{ env.DEPLOYMENT_NAME }} | |
token: ${{ secrets.GH_TOKEN }} | |
auto_inactive: true | |
# This will now be automatically handled by github with the auto_inactive | |
override: false | |
status: ${{ job.status }} | |
deployment_id: ${{ steps.deployment.outputs.deployment_id }} | |
env_url: ${{ steps.deploy.outputs.url }} | |
- name: Move cache | |
run: | | |
rm -rf /tmp/docs/.buildx-cache | |
mv /tmp/docs/.buildx-cache-new /tmp/docs/.buildx-cache |