Merge pull request #4 from g-pan/main #19
This file contains hidden or 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: Build Documentation | |
| env: | |
| VCPKG_BINARY_SOURCES: "clear;nuget,GitHub,read" | |
| VCPKG_NUGET_REPOSITORY: "https://github.com/hpcc-systems/vcpkg" | |
| #uncommented push | |
| on: | |
| #possibly comment this | |
| #workflow_dispatch | |
| push: | |
| jobs: | |
| Test-hyperlinks: | |
| uses: ./.github/workflows/test-hyperlinks.yml | |
| with: | |
| file-path: "docs/" | |
| file-type: "xml" | |
| debug-mode: false | |
| preamble: | |
| name: Publish Release | |
| env: | |
| #COMMUNITY_REF: "dc1cdacdbdda6e5ca1c5b836e130c2deb2d2fe62" | |
| COMMUNITY_REF: <GIT REF> | |
| GITHUB_ACCOUNT: ${{ github.repository_owner }} | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| outputs: | |
| folder_platform: ${{ steps.vars.outputs.folder_platform }} | |
| mount_platform: ${{ steps.vars.outputs.mount_platform }} | |
| folder_build: ${{ steps.vars.outputs.folder_build }} | |
| mount_build: ${{ steps.vars.outputs.mount_build }} | |
| community_ref: ${{ steps.vars.outputs.community_ref }} | |
| community_tag: ${{ steps.vars.outputs.community_tag }} | |
| hpcc_version: ${{ steps.vars.outputs.hpcc_version }} | |
| candidate_base_branch: ${{ steps.vars.outputs.candidate_base_branch }} | |
| candidate_branch: ${{ steps.vars.outputs.candidate_branch }} | |
| cmake_docker_config: ${{ steps.vars.outputs.cmake_docker_config }} | |
| gpg_import: ${{ steps.vars.outputs.gpg_import }} | |
| github_account: ${{ steps.vars.outputs.github_account }} | |
| steps: | |
| - name: Calculate vars | |
| id: vars | |
| run: | | |
| github_account=${{ env.GITHUB_ACCOUNT }} | |
| echo "github_account=$github_account" >> $GITHUB_OUTPUT | |
| echo "folder_platform=${{ github.workspace }}/HPCC-Platform" >> $GITHUB_OUTPUT | |
| echo 'mount_platform=source="${{ github.workspace }}/HPCC-Platform",target=/hpcc-dev/HPCC-Platform,type=bind,consistency=cached' >> $GITHUB_OUTPUT | |
| echo "folder_build=${{ github.workspace }}/build" >> $GITHUB_OUTPUT | |
| echo 'mount_build=source="${{ github.workspace }}/build",target=/hpcc-dev/build,type=bind,consistency=cached' >> $GITHUB_OUTPUT | |
| community_ref=${{ env.COMMUNITY_REF }} | |
| echo "community_ref=$community_ref" >> $GITHUB_OUTPUT | |
| community_tag=$(echo $community_ref | cut -d'/' -f3) | |
| echo "community_tag=$community_tag" >> $GITHUB_OUTPUT | |
| echo "hpcc_version=$(echo $community_tag | sed 's/community_//' | sed 's/-[0-9]$//')" >> $GITHUB_OUTPUT | |
| community_base_ref=${{ github.event.base_ref || github.ref }} | |
| candidate_branch=$(echo $community_base_ref | cut -d'/' -f3) | |
| echo "candidate_branch=$candidate_branch" >> $GITHUB_OUTPUT | |
| echo "candidate_base_branch=$(echo $candidate_branch | awk -F'.' -v OFS='.' '{ $3="x"; print }')" >> $GITHUB_OUTPUT | |
| echo "cmake_docker_config=-DCMAKE_BUILD_TYPE=RelWithDebInfo -DVCPKG_FILES_DIR=/hpcc-dev -DCPACK_THREADS=0 -DUSE_OPTIONAL=OFF -DSIGN_MODULES=${{ env.GITHUB_ACCOUNT == 'hpcc-systems' && 'ON' || 'OFF' }}" >> $GITHUB_OUTPUT | |
| echo 'gpg_import=gpg --batch --import /hpcc-dev/build/private.key' >> $GITHUB_OUTPUT | |
| - name: Print vars | |
| run: | | |
| echo "${{ toJSON(steps.vars.outputs) }})" | |
| build-docker: | |
| name: Build Docker | |
| needs: preamble | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-22.04 | |
| name: docs | |
| documentation: true | |
| fail-fast: false | |
| steps: | |
| - name: Free additional disk space (remove Android SDK + Tools) | |
| continue-on-error: true | |
| run: | | |
| df -h | |
| sudo rm -rf ${ANDROID_HOME} | |
| sudo rm -rf ${JAVA_HOME_8_X64} | |
| sudo rm -rf ${JAVA_HOME_11_X64} | |
| sudo rm -rf ${JAVA_HOME_17_X64} | |
| sudo rm -rf ${JAVA_HOME_21_X64} | |
| sudo rm -rf ${CHROMEWEBDRIVER} | |
| sudo rm -rf ${EDGEWEBDRIVER} | |
| sudo rm -rf ${GECKOWEBDRIVER} | |
| sudo rm -rf ${SELENIUM_JAR_PATH} | |
| - name: Display disk space (post free) | |
| run: | | |
| df -h | |
| - name: Checkout HPCC-Platform | |
| uses: actions/checkout@v3 | |
| with: | |
| repository: ${{ needs.preamble.outputs.github_account }}/HPCC-Platform | |
| ref: ${{ needs.preamble.outputs.community_ref }} | |
| submodules: recursive | |
| path: ${{ needs.preamble.outputs.folder_platform }} | |
| - name: Calculate vars | |
| id: vars | |
| working-directory: ${{ needs.preamble.outputs.folder_platform }}/vcpkg | |
| run: | | |
| vcpkg_sha_short=$(git rev-parse --short=8 HEAD) | |
| echo "vcpkg_sha_short=$vcpkg_sha_short" >> $GITHUB_OUTPUT | |
| docker_build_label=hpccsystems/platform-build-${{ matrix.os }} | |
| echo "docker_build_label=$docker_build_label" >> $GITHUB_OUTPUT | |
| echo "docker_tag=$docker_build_label:$vcpkg_sha_short" >> $GITHUB_OUTPUT | |
| echo "docker_tag_candidate_base=$docker_build_label:${{ needs.preamble.outputs.candidate_base_branch }}" >> $GITHUB_OUTPUT | |
| - name: Print vars | |
| run: | | |
| echo "${{ toJSON(needs.preamble.outputs) }})" | |
| echo "${{ toJSON(steps.vars.outputs) }})" | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Login to DockerHub | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Create Build Image | |
| uses: docker/build-push-action@v4 | |
| with: | |
| builder: ${{ steps.buildx.outputs.name }} | |
| file: ${{ needs.preamble.outputs.folder_platform }}/dockerfiles/vcpkg/${{ matrix.os }}.dockerfile | |
| context: ${{ needs.preamble.outputs.folder_platform }}/dockerfiles/vcpkg | |
| push: ${{ needs.preamble.outputs.github_account == 'hpcc-systems' }} | |
| load: ${{ needs.preamble.outputs.github_account != 'hpcc-systems' }} | |
| build-args: | | |
| VCPKG_REF=${{ steps.vars.outputs.vcpkg_sha_short }} | |
| tags: | | |
| ${{ steps.vars.outputs.docker_tag_candidate_base }} | |
| cache-from: | | |
| type=registry,ref=${{ steps.vars.outputs.docker_tag_candidate_base }} | |
| type=registry,ref=${{ steps.vars.outputs.docker_tag }} | |
| cache-to: type=inline | |
| # Communtiy Build | |
| - name: CMake Packages (community) | |
| if: ${{ !matrix.ln && !matrix.ee && !matrix.container && !matrix.documentation }} | |
| run: | | |
| mkdir -p ${{ needs.preamble.outputs.folder_build }} | |
| #echo "${{ secrets.SIGNING_SECRET }}" > ${{ needs.preamble.outputs.folder_build }}/private.key | |
| - name: CMake documentation (community) | |
| if: ${{ !matrix.ln && !matrix.ee && !matrix.container && matrix.documentation }} | |
| run: | | |
| mkdir -p {${{needs.preamble.outputs.folder_build }},EN_US,PT_BR,vcpkg_downloads} | |
| sudo rm -f ${{ needs.preamble.outputs.folder_build }}/CMakeCache.txt | |
| sudo rm -rf ${{ needs.preamble.outputs.folder_build }}/CMakeFiles | |
| docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "\ | |
| cmake -S /hpcc-dev/HPCC-Platform -B /hpcc-dev/build -DVCPKG_FILES_DIR=/hpcc-dev -DMAKE_DOCS_ONLY=ON -DUSE_NATIVE_LIBRARIES=ON -DDOCS_AUTO=ON -DDOC_LANGS=ALL && \ | |
| cmake --build /hpcc-dev/build --parallel $(nproc) --target all" | |
| docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "cd /hpcc-dev/build/Release/docs/EN_US && zip ALL_HPCC_DOCS_EN_US-${{ needs.preamble.outputs.community_tag }}.zip *.pdf" | |
| docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "cd /hpcc-dev/build/Release/docs/PT_BR && zip ALL_HPCC_DOCS_PT_BR-${{ needs.preamble.outputs.community_tag }}.zip *.pdf" | |
| - name: Upload Artifacts | |
| if: ${{ !matrix.ln && !matrix.container && matrix.documentation }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: HPCC-Docs | |
| path: | | |
| ${{ needs.preamble.outputs.folder_build }}/Release/docs/*.zip | |
| ${{ needs.preamble.outputs.folder_build }}/Release/docs/EN_US/*.zip | |
| ${{ needs.preamble.outputs.folder_build }}/Release/docs/PT_BR/*.zip | |
| ${{ needs.preamble.outputs.folder_build }}/docs/EN_US/EclipseHelp/*.zip | |
| ${{ needs.preamble.outputs.folder_build }}/docs/EN_US/HTMLHelp/*.zip | |
| ${{ needs.preamble.outputs.folder_build }}/docs/PT_BR/HTMLHelp/*.zip | |
| compression-level: 0 | |