PLASMA-4104: sdds-insol
configs for Autocomplete
, Select
and Combobox
updated
#2930
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: Deploy documentations artefacts [PR] | |
on: | |
pull_request_target: | |
branches: | |
- dev | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
# New commit on branch cancels running workflows of the same branch | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
jobs: | |
authorize: | |
name: Authorize external pull request | |
if: ${{ !startsWith(github.head_ref, 'release') }} | |
uses: ./.github/workflows/authorize-external-pr.yml | |
state: | |
name: Handle lerna changed state | |
needs: [authorize] | |
uses: ./.github/workflows/change-detection.yml | |
with: | |
ref: refs/pull/${{github.event.pull_request.number}}/merge | |
secrets: inherit | |
deploy-website: | |
name: Deploy website artifacts | |
needs: [ state ] | |
if: ${{ fromJSON(needs.state.outputs.STATE).HAS_DEPLOY_WEBSITE }} | |
runs-on: ubuntu-22.04 | |
env: | |
PR_NAME: pr-${{ github.event.number }} | |
PREFIX: pr/pr-${{ github.event.number }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: refs/pull/${{github.event.pull_request.number}}/merge | |
show-progress: false | |
- name: Prepare environment | |
uses: ./.github/actions/prepare-environment | |
- name: Lerna bootstrap | |
run: npx lerna bootstrap --scope="@salutejs/core-themes" --scope="@salutejs/plasma-{b2c,web,website,tokens-b2c,typo,icons,new-hope,themes}" | |
- name: Prepare directory | |
run: | | |
mkdir -p s3_build/${PR_NAME} | |
# TODO: https://github.com/salute-developers/plasma/issues/603 | |
- name: Plasma Website | |
run: | | |
export NODE_OPTIONS=--openssl-legacy-provider | |
npm run build --prefix="./website/plasma-website" | |
cp -R ./website/plasma-website/build/. ./s3_build/${PR_NAME} | |
- name: Install s3cmd | |
run: pip3 install s3cmd | |
- name: s3 Upload | |
run: > | |
s3cmd | |
--access_key ${{ secrets.AWS_ACCESS_KEY_ID }} | |
--secret_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
--host ${{ secrets.AWS_ENDPOINT }} | |
--host-bucket ${{ secrets.AWS_ENDPOINT }} | |
--bucket-location ${{ secrets.AWS_REGION }} | |
--signature-v2 | |
--no-mime-magic | |
sync | |
./s3_build/${PR_NAME}/ | |
s3://${{ secrets.AWS_S3_BUCKET_2 }}/pr/${PR_NAME}/ | |
deploy-artifacts: | |
name: Deploy artifacts | |
needs: [ state, deploy-website ] | |
if: ${{ fromJSON(needs.state.outputs.STATE).HAS_PACKAGES_DS_CHANGES }} | |
runs-on: ubuntu-22.04 | |
env: | |
PR_NAME: pr-${{ github.event.number }} | |
PREFIX: pr/pr-${{ github.event.number }} | |
strategy: | |
fail-fast: false | |
matrix: | |
package: ${{ fromJson(needs.state.outputs.STATE).PACKAGES_DOCUMENTATIONS_RUN }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
ref: refs/pull/${{github.event.pull_request.number}}/merge | |
- name: Prepare environment | |
uses: ./.github/actions/prepare-environment | |
- name: Set job environment variables | |
run: | | |
echo "SHORT_NAME=$(echo ${{ matrix.package }} | sed -r 's/plasma-//g')" >> $GITHUB_ENV | |
echo "HAS_PACKAGE_DOCS=$([ -d "./website/${{ matrix.package }}-docs" ] && echo true || echo false)" >> $GITHUB_ENV | |
- name: Get lerna scope | |
id: lerna-scope | |
uses: actions/github-script@v7 | |
env: | |
PROCESSED_DATA: ${{ toJSON(fromJson(needs.state.outputs.STATE).PROCESSED_DATA) }} | |
PACKAGE: ${{ matrix.package }} | |
with: | |
result-encoding: string | |
script: | | |
const getLernaScope = require('./.github/get-lerna-scope.js'); | |
return getLernaScope(); | |
- name: Lerna bootstrap | |
run: npx lerna bootstrap --scope="${{ steps.lerna-scope.outputs.result }}" | |
- name: Prepare directory | |
run: mkdir -p s3_build/${PR_NAME} | |
- name: Build documentation - "${{ matrix.package }}" | |
if: ${{ fromJSON(env.HAS_PACKAGE_DOCS) }} | |
run: | | |
npm run build --prefix="./website/${{ matrix.package }}-docs" -- --no-minify | |
cp -R ./website/${{ matrix.package }}-docs/build ./s3_build/${PR_NAME}/${{ env.SHORT_NAME }} | |
- name: Build storybook - "${{ matrix.package }}" | |
run: | | |
npm run storybook:build --prefix="./packages/${{ matrix.package }}" | |
cp -R ./packages/${{ matrix.package }}/build-sb ./s3_build/${PR_NAME}/${{ env.SHORT_NAME }}-storybook | |
## Проверяем если в пакете скрипт отвечающий за сборку компонентов на основе черновика | |
- name: Build draft components storybook - "${{ matrix.package }}" | |
run: | | |
if grep -q '"storybook:draft"' "./packages/${{ matrix.package }}/package.json"; then | |
npm run storybook:build:draft --prefix="./packages/${{ matrix.package }}" | |
cp -R ./packages/${{ matrix.package }}/build-sb-draft ./s3_build/${PR_NAME}/${{ env.SHORT_NAME }}-draft-storybook | |
echo "HAS_DRAFT_COMPONENTS=true" >> $GITHUB_ENV | |
else | |
echo "Package not have draft components" | |
fi | |
- name: Install s3cmd | |
run: pip3 install s3cmd | |
- name: s3 upload docs | |
if: ${{ fromJSON(env.HAS_PACKAGE_DOCS) }} | |
run: > | |
s3cmd | |
--access_key ${{ secrets.AWS_ACCESS_KEY_ID }} | |
--secret_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
--host ${{ secrets.AWS_ENDPOINT }} | |
--host-bucket ${{ secrets.AWS_ENDPOINT }} | |
--bucket-location ${{ secrets.AWS_REGION }} | |
--signature-v2 | |
--delete-removed | |
--no-mime-magic | |
sync | |
./s3_build/${PR_NAME}/${{ env.SHORT_NAME }}/ | |
s3://${{ secrets.AWS_S3_BUCKET_2 }}/pr/${PR_NAME}/${{ env.SHORT_NAME }}/ | |
- name: s3 upload storybook by draft components | |
if: ${{ env.HAS_DRAFT_COMPONENTS == 'true' }} | |
run: > | |
s3cmd | |
--access_key ${{ secrets.AWS_ACCESS_KEY_ID }} | |
--secret_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
--host ${{ secrets.AWS_ENDPOINT }} | |
--host-bucket ${{ secrets.AWS_ENDPOINT }} | |
--bucket-location ${{ secrets.AWS_REGION }} | |
--signature-v2 | |
--delete-removed | |
--no-mime-magic | |
sync | |
./s3_build/${PR_NAME}/${{ env.SHORT_NAME }}-draft-storybook/ | |
s3://${{ secrets.AWS_S3_BUCKET_2 }}/pr/${PR_NAME}/${{ env.SHORT_NAME }}-draft-storybook/ | |
- name: s3 upload storybook | |
run: > | |
s3cmd | |
--access_key ${{ secrets.AWS_ACCESS_KEY_ID }} | |
--secret_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
--host ${{ secrets.AWS_ENDPOINT }} | |
--host-bucket ${{ secrets.AWS_ENDPOINT }} | |
--bucket-location ${{ secrets.AWS_REGION }} | |
--signature-v2 | |
--delete-removed | |
--no-mime-magic | |
sync | |
./s3_build/${PR_NAME}/${{ env.SHORT_NAME }}-storybook/ | |
s3://${{ secrets.AWS_S3_BUCKET_2 }}/pr/${PR_NAME}/${{ env.SHORT_NAME }}-storybook/ | |
attache-comment: | |
name: Attached comment | |
needs: [ state, deploy-website, deploy-artifacts ] | |
if: ${{ always() && (contains(needs.deploy-website.result, 'success') || contains(needs.deploy-artifacts.result, 'success')) }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: refs/pull/${{github.event.pull_request.number}}/merge | |
show-progress: false | |
- name: Create comment | |
id: comment-link | |
uses: actions/github-script@v7 | |
env: | |
PACKAGES_DS: ${{ toJSON(fromJSON(needs.state.outputs.STATE).PACKAGES_DOCUMENTATIONS_RUN) }} | |
BASE_URL: ${{ vars.STAGE_STABLE_URL }}/pr/pr-${{ github.event.number }} | |
with: | |
result-encoding: string | |
script: | | |
const createLinks = require('./.github/create-links.js'); | |
return createLinks(); | |
- name: Attach comment | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
header: Links | |
message: ${{ steps.comment-link.outputs.result }} |