/
sdds
/
plasma
Обзор
Документация
Войти
/
sdds
/
plasma
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
dev
.github/workflows/documentation-deploy-common.yml
186 строк
8 KB
Dima Shugaev
feat(infra): update configs for docsense
08 апр 2026, 10:47
08 апр 2026, 10:47
0031244
Код
Авторство
О чём код?
name: Deploy documentations artefacts common workflow (PROD,DEV SUBDIR) on: workflow_call: inputs: path: description: 'Possible value: dev, current' default: 'dev' type: string ref: type: string description: "Manual set repo ref" default: 'dev' docusaurusURLPrefix: type: string description: "prefix for docusaurus URL, example 'plasma.sberdevices.ru/dev/sdds-serv/'" default: '' jobs: state: name: Computed state runs-on: ubuntu-22.04 outputs: MATRIX: ${{ steps.matrix.outputs.result }} steps: - uses: actions/checkout@v4 # [NOTE]: В проекте default branch - dev, что бы правильно собрать # актуальную версию для branch master, нужно указать ref = 'master' # [DOC]: About REF. The branch, tag or SHA to checkout. When checking out the repository that # triggered a workflow, this defaults to the reference or SHA for that event. # Otherwise, **uses the default branch**. # [DOC]: Last commit on default branch with: ref: ${{ inputs.ref }} show-progress: false - name: Read meta config id: matrix uses: actions/github-script@v7 with: script: | const fs = require('fs'); const data = '.github/config-ci.json'; const config = JSON.parse(fs.readFileSync(data, 'utf8')); return config.PACKAGES_DS; deploy-website: name: Deploy website artifacts needs: state runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.ref }} show-progress: false - name: Prepare environment uses: ./.github/actions/prepare-environment - name: Lerna bootstrap run: npx lerna bootstrap --scope="@salutejs/{plasma-b2c,plasma-web,plasma-website,plasma-tokens-b2c,plasma-typo,plasma-icons,plasma-new-hope,plasma-themes,core-themes}" - name: Prepare directory run: mkdir -p s3_local_current - name: Plasma Website run: | npm run build --prefix="./website/plasma-website" cp -R ./website/plasma-website/build/. ./s3_local_current/next-${{ github.sha }} - 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_local_current/next-${{ github.sha }}/ s3://${{ secrets.AWS_S3_BUCKET_2 }}/${{ inputs.path }}/ deploy-artifacts: name: Deploy artifacts needs: [ state, deploy-website ] env: PREFIX: ${{ inputs.docusaurusURLPrefix }} TYPESENSE_KEY: ${{ secrets.TYPESENSE_KEY }} TYPESENSE_SERVICE_HOSTNAME: ${{ secrets.TYPESENSE_SERVICE_HOSTNAME }} QDRANT_API_KEY: ${{ secrets.QDRANT_API_KEY }} runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: package: ${{ fromJSON(needs.state.outputs.MATRIX) }} steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.ref }} show-progress: false - 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: S3 Storybook path env: PATH_TO_SUBDIR: ${{ secrets.AWS_S3_BUCKET_2 }}/${{ inputs.path }}/${{ env.SHORT_NAME }}-storybook/ PATH_ROOT: ${{ secrets.AWS_S3_BUCKET_2 }}/${{ env.SHORT_NAME }}-storybook/ run: | echo "S3_STORYBOOK_PATH=${{ inputs.path == 'current' && env.PATH_ROOT || env.PATH_TO_SUBDIR }}" >> $GITHUB_ENV - name: Computed lerna scope id: scope uses: actions/github-script@v7 env: PACKAGE: ${{ matrix.package }} with: result-encoding: string script: | const fs = require('fs'); const META = require('.github/meta-prod.js'); const packageName = process.env.PACKAGE; return META[packageName].scope; - name: Lerna bootstrap run: npx lerna bootstrap --scope="@salutejs/${{ matrix.package }}" --scope="@salutejs/{${{ steps.scope.outputs.result }}}" - name: Prepare directory run: mkdir -p s3_local_storybook_build s3_local_docs_build - name: Build documentation - "${{ matrix.package }}" if: ${{ fromJSON(env.HAS_PACKAGE_DOCS) }} env: NODE_OPTIONS: "--max_old_space_size=10240" run: | npm run build --prefix="./website/${{ matrix.package }}-docs" -- --no-minify cp -R ./website/${{ matrix.package }}-docs/build ./s3_local_docs_build/${{ 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_local_storybook_build/${{ env.SHORT_NAME }}-storybook - 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_local_docs_build/${{ env.SHORT_NAME }}/ s3://${{ secrets.AWS_S3_BUCKET_2 }}/${{ inputs.path }}/${{ env.SHORT_NAME }}/ - 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_local_storybook_build/${{ env.SHORT_NAME }}-storybook/ s3://${{ env.S3_STORYBOOK_PATH }}