Skip to content

调整组件相关内容 #133

调整组件相关内容

调整组件相关内容 #133

name: Deploy documentation
on:
# If specified, the workflow will be triggered automatically once you push to the `main` branch.
# Replace `main` with your branch’s name
push:
branches:
- master
paths:
- 'Writerside/**'
- '.github/workflows/deploy-documentation.yml'
# Specify to run a workflow manually from the Actions tab on GitHub
workflow_dispatch:
# Gives the workflow permissions to clone the repo and create a page deployment
permissions:
id-token: write
pages: write
env:
# Name of module and id separated by a slash
INSTANCE: Writerside/s4
INSTANCE_NAME: s4
# Replace HI with the ID of the instance in capital letters
ARTIFACT: webHelpS42-all.zip
# Writerside docker image version
# see https://www.jetbrains.com/help/writerside/deploy-docs-to-github-pages.html
DOCKER_VERSION: '241.15989'
# Add the variable below to upload Algolia indexes
# Replace HI with the ID of the instance in capital letters
ALGOLIA_ARTIFACT: algolia-indexes-S4.zip
ALGOLIA_APP_NAME: VLLZ4JZE8Z
ALGOLIA_INDEX_NAME: doc
ALGOLIA_KEY: ${{ secrets.ALGOLIA_KEY }}
jobs:
build:
runs-on: ubuntu-latest
outputs:
config_json: ${{ steps.output-config-json.outputs.config_json }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build Writerside docs using Docker
uses: JetBrains/writerside-github-action@v4
with:
instance: ${{ env.INSTANCE }}
artifact: ${{ env.ARTIFACT }}
docker-version: ${{ env.DOCKER_VERSION }}
- name: Upload documentation
uses: actions/upload-artifact@v4
with:
name: docs
path: |
artifacts/${{ env.ARTIFACT }}
artifacts/report.json
public/*
retention-days: 7
- name: Upload documentation test reports
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: 'report.json'
path: |
artifacts/report.json
retention-days: 7
# Add the step below to upload Algolia indexes
- name: Upload algolia-indexes
uses: actions/upload-artifact@v4
with:
name: algolia-indexes
path: artifacts/${{ env.ALGOLIA_ARTIFACT }}
retention-days: 7
- name: Unzip artifact
run: unzip -O UTF-8 -qq artifacts/${{ env.ARTIFACT }} -d dir
- name: Output documentation config.json
id: output-config-json
run: |
echo "config_json=$(cat dir/config.json)" >> $GITHUB_OUTPUT
# Add the job below and artifacts/report.json on Upload documentation step above if you want to fail the build when documentation contains errors
test:
# Requires build job results
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: docs
# path: artifacts
- name: Test documentation
uses: JetBrains/writerside-checker-action@v1
with:
instance: ${{ env.INSTANCE }}
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Requires the build job results
needs: test
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: docs
- name: Unzip artifact
run: unzip -O UTF-8 -qq artifacts/${{ env.ARTIFACT }} -d dir
- name: Copy public
run: cp -r public/* dir/
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: dir
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# https://www.jetbrains.com/help/writerside/configure-search.html
publish-indexes:
# Requires the build-job results
needs: [build, test]
runs-on: ubuntu-latest
container:
image: registry.jetbrains.team/p/writerside/builder/algolia-publisher:2.0.32-3
env:
CONFIG_JSON_VERSION: ${{ fromJSON(needs.build.outputs.config_json).productVersion }}
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: algolia-indexes
- name: Unzip artifact
run: |
unzip -O UTF-8 -qq ${{ env.ALGOLIA_ARTIFACT }} -d algolia-indexes
env "algolia-key=${{env.ALGOLIA_KEY}}" java -jar /opt/builder/help-publication-agent.jar \
update-index \
--application-name ${{env.ALGOLIA_APP_NAME}} \
--index-name ${{env.ALGOLIA_INDEX_NAME}} \
--product ${{env.INSTANCE_NAME}} \
--version ${{env.CONFIG_JSON_VERSION}} \
--index-directory algolia-indexes/ \
2>&1 | tee algolia-update-index-log.txt