s3 bucket upload #15
Workflow file for this run
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: Build Assets | ||
env: | ||
VCPKG_BINARY_SOURCES: "clear;nuget,GitHub,read" | ||
VCPKG_NUGET_REPOSITORY: "https://github.com/hpcc-systems/vcpkg" | ||
on: | ||
push: | ||
tags: | ||
- "*" | ||
- "community_*" | ||
- "!community_8.10.*" | ||
- "!community_8.8.*" | ||
- "!community_8.6.*" | ||
- "!community_8.4.*" | ||
- "!community_8.2.*" | ||
- "!community_8.0.*" | ||
- "!community_7.*" | ||
jobs: | ||
preamble: | ||
name: Publish Release | ||
runs-on: ubuntu-22.04 | ||
permissions: | ||
contents: write | ||
outputs: | ||
folder_platform: ${{ steps.vars.outputs.folder_platform }} | ||
mount_platform: ${{ steps.vars.outputs.mount_platform }} | ||
folder_ln: ${{ steps.vars.outputs.folder_ln }} | ||
mount_ln: ${{ steps.vars.outputs.mount_ln }} | ||
folder_build: ${{ steps.vars.outputs.folder_build }} | ||
mount_build: ${{ steps.vars.outputs.mount_build }} | ||
community_ref: ${{ steps.vars.outputs.community_ref }} | ||
internal_ref: ${{ steps.vars.outputs.internal_ref }} | ||
eclide_ref: ${{ steps.vars.outputs.eclide_ref }} | ||
community_tag: ${{ steps.vars.outputs.community_tag }} | ||
internal_tag: ${{ steps.vars.outputs.internal_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 }} | ||
steps: | ||
- name: Calculate vars | ||
id: vars | ||
run: | | ||
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_ln=${{ github.workspace }}/LN" >> $GITHUB_OUTPUT | ||
echo 'mount_ln=source="${{ github.workspace }}/LN",target=/hpcc-dev/LN,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=${{ github.ref }} | ||
echo "community_ref=$community_ref" >> $GITHUB_OUTPUT | ||
echo "internal_ref=$(echo $community_ref | sed 's/community/internal/')" >> $GITHUB_OUTPUT | ||
echo "eclide_ref=$(echo $community_ref | sed 's/community/eclide/')" >> $GITHUB_OUTPUT | ||
community_tag=$(echo $community_ref | cut -d'/' -f3) | ||
echo "community_tag=$community_tag" >> $GITHUB_OUTPUT | ||
echo "internal_tag=$(echo $community_tag | sed 's/community/internal/')" >> $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=${{ github.repository_owner == '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) }})" | ||
- name: Release HPCC-Platform | ||
uses: ncipollo/[email protected] | ||
with: | ||
allowUpdates: true | ||
generateReleaseNotes: false | ||
prerelease: ${{ contains(github.ref, '-rc') }} | ||
build-docker: | ||
name: Build Docker | ||
needs: preamble | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
include: | ||
- os: ubuntu-22.04 | ||
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@v4 | ||
with: | ||
ref: ${{ needs.preamble.outputs.community_ref }} | ||
submodules: recursive | ||
path: ${{ needs.preamble.outputs.folder_platform }} | ||
- name: Checkout LN | ||
if: ${{ matrix.ln || matrix.ee }} | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: ${{ github.repository_owner }}/LN | ||
token: ${{ secrets.LNB_TOKEN }} | ||
ref: ${{ needs.preamble.outputs.internal_ref }} | ||
submodules: recursive | ||
path: ${{ needs.preamble.outputs.folder_ln }} | ||
- 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@v3 | ||
- name: Login to DockerHub | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
- name: Create Build Image | ||
uses: docker/build-push-action@v5 | ||
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: ${{ github.repository_owner == 'hpcc-systems' }} | ||
load: ${{ github.repository_owner != '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 | ||
plugins=("CASSANDRAEMBED" "COUCHBASEEMBED" "ECLBLAS" "H3" "JAVAEMBED" "KAFKA" "MEMCACHED" "MONGODBEMBED" "MYSQLEMBED" "NLP" "PARQUETEMBED" "REDIS" "REMBED" "SQLITE3EMBED" "SQS" "WASMEMBED" "PLATFORM" "CLIENTTOOLS_ONLY") | ||
for plugin in "${plugins[@]}"; do | ||
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 }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/HPCC-Platform -B /hpcc-dev/build ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -D$plugin=ON -DCONTAINERIZED=OFF -DCPACK_STRIP_FILES=OFF ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
# Disabled as not currently needed --- | ||
# 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 ${{ needs.preamble.outputs.cmake_docker_config }} -D$plugin=ON -DCONTAINERIZED=OFF -DCPACK_STRIP_FILES=ON" | ||
# docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
done | ||
cd ${{ needs.preamble.outputs.folder_build }} | ||
packages=($(ls -1 hpccsystems-*)) | ||
for i in "${packages[@]}"; do | ||
md5sum "$i" > "$i.md5sum" | ||
done | ||
- name: CMake Containerized 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 | ||
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 }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/HPCC-Platform -B /hpcc-dev/build ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=ON -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=OFF ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/HPCC-Platform -B /hpcc-dev/build ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=ON -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=ON ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
- 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} | ||
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-$(echo '${{ needs.preamble.outputs.community_tag }}' | sed 's/community_//' ).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-$(echo '${{ needs.preamble.outputs.community_tag }}' | sed 's/community_//' ).zip *.pdf" | ||
- name: Upload Artifacts for ECLIDE build | ||
if: ${{ !matrix.ln && !matrix.container && matrix.documentation }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: html-help-documents | ||
path: | | ||
${{ 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 | ||
- name: Upload Assets (community) | ||
if: ${{ !matrix.ln && !matrix.ee }} | ||
uses: ncipollo/[email protected] | ||
with: | ||
allowUpdates: true | ||
generateReleaseNotes: false | ||
prerelease: ${{ contains(github.ref, '-rc') }} | ||
artifacts: | | ||
${{ needs.preamble.outputs.folder_build }}/*.deb, | ||
${{ needs.preamble.outputs.folder_build }}/*.rpm, | ||
${{ 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, | ||
${{ needs.preamble.outputs.folder_build }}/*.md5sum | ||
- name: Locate k8s deb file (community) | ||
if: ${{ !matrix.ln && !matrix.ee && matrix.container && !matrix.documentation }} | ||
id: container | ||
run: | | ||
k8s_pkg_path=$(ls -t ${{ needs.preamble.outputs.folder_build }}/*64_k8s.deb 2>/dev/null | head -1) | ||
k8s_pkg_file=$(basename "$k8s_pkg_path") | ||
echo "k8s_pkg_file=$k8s_pkg_file" >> $GITHUB_OUTPUT | ||
echo "$k8s_pkg_file" | ||
- name: Create Docker Image (community) | ||
uses: docker/build-push-action@v5 | ||
if: ${{ !matrix.ln && !matrix.ee && matrix.container && !matrix.documentation }} | ||
with: | ||
builder: ${{ steps.buildx.outputs.name }} | ||
file: ${{ needs.preamble.outputs.folder_platform }}/dockerfiles/vcpkg/platform-core-${{ matrix.os }}/Dockerfile | ||
context: ${{ needs.preamble.outputs.folder_build }} | ||
push: ${{ github.repository_owner == 'hpcc-systems' }} | ||
build-args: | | ||
PKG_FILE=${{ steps.container.outputs.k8s_pkg_file }} | ||
tags: | | ||
hpccsystems/platform-core-${{ matrix.os }}:${{ needs.preamble.outputs.community_tag }} | ||
hpccsystems/platform-core-${{ matrix.os }}:${{ needs.preamble.outputs.candidate_base_branch }} | ||
cache-from: | | ||
type=registry,ref=hpccsystems/platform-core-${{ matrix.os }}:${{ needs.preamble.outputs.candidate_base_branch }} | ||
# Internal Build --- | ||
- name: Login to JFrog (internal) | ||
if: ${{ matrix.ln && matrix.container && github.repository_owner == 'hpcc-systems' }} | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{ secrets.JFROG_REGISTRY }} | ||
username: ${{ secrets.JFROG_USERNAME }} | ||
password: ${{ secrets.JFROG_PASSWORD }} | ||
- name: Setup JFrog CLI (internal) | ||
if: ${{ matrix.ln && matrix.container && github.repository_owner == 'hpcc-systems' }} | ||
uses: jfrog/setup-jfrog-cli@v3 | ||
env: | ||
JF_URL: https://${{ secrets.JFROG_REGISTRY }} | ||
JF_USER: ${{ secrets.JFROG_USERNAME }} | ||
JF_PASSWORD: ${{ secrets.JFROG_PASSWORD }} | ||
- name: CMake Packages (internal) | ||
if: ${{ matrix.ln && !matrix.container && !matrix.documentation }} | ||
run: | | ||
mkdir -p ${{ needs.preamble.outputs.folder_build }} | ||
echo "${{ secrets.SIGNING_SECRET }}" > ${{ needs.preamble.outputs.folder_build }}/private.key | ||
plugins=("PLATFORM" "CLIENTTOOLS_ONLY") | ||
for plugin in "${plugins[@]}"; do | ||
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_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/LN -B /hpcc-dev/build -DHPCC_SOURCE_DIR=/hpcc-dev/HPCC-Platform ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -D$plugin=ON -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=OFF -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=OFF ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
# Disabled as not currently needed --- | ||
# docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "cmake -S /hpcc-dev/LN -B /hpcc-dev/build -DHPCC_SOURCE_DIR=/hpcc-dev/HPCC-Platform ${{ needs.preamble.outputs.cmake_docker_config }} -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=OFF -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=ON" | ||
# docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
done | ||
- name: CMake Containerized Packages (internal) | ||
if: ${{ matrix.ln && matrix.container && !matrix.documentation }} | ||
run: | | ||
mkdir -p ${{ needs.preamble.outputs.folder_build }} | ||
echo "${{ secrets.SIGNING_SECRET }}" > ${{ needs.preamble.outputs.folder_build }}/private.key | ||
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_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/LN -B /hpcc-dev/build -DHPCC_SOURCE_DIR=/hpcc-dev/HPCC-Platform ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=ON -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=OFF ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
docker run --rm --mount ${{ needs.preamble.outputs.mount_platform }} --mount ${{ needs.preamble.outputs.mount_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/LN -B /hpcc-dev/build -DHPCC_SOURCE_DIR=/hpcc-dev/HPCC-Platform ${{ needs.preamble.outputs.cmake_docker_config }} -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=ON -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=ON ${{ matrix.cmake_options_extra }} && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
- name: Upload Assets (internal) | ||
if: ${{ matrix.ln }} | ||
uses: ncipollo/[email protected] | ||
with: | ||
allowUpdates: true | ||
generateReleaseNotes: false | ||
prerelease: ${{ contains(github.ref, '-rc') }} | ||
owner: ${{ secrets.LNB_ACTOR }} | ||
repo: LN | ||
token: ${{ secrets.LNB_TOKEN }} | ||
tag: ${{ needs.preamble.outputs.internal_tag }} | ||
artifacts: "${{ needs.preamble.outputs.folder_build }}/hpccsystems-*-internal*.deb,${{ needs.preamble.outputs.folder_build }}/hpccsystems-*-internal*.rpm" | ||
- name: Upload Assets to Jfrog (debian internal) | ||
if: ${{ matrix.ln && !matrix.container && contains(matrix.os, 'ubuntu') && github.repository_owner == 'hpcc-systems'}} | ||
shell: bash | ||
run: | | ||
cd ${{ needs.preamble.outputs.folder_build }} | ||
version=$(echo "${{ needs.preamble.outputs.internal_tag }}" | sed 's/internal_//') | ||
packages=($(ls -1 hpccsystems-*.deb )) | ||
for _package in ${packages[@]}; do | ||
distribution=$( echo "${_package}" | sed "s/^.*${version}//" | awk -F '_' '{print $1;}' ) | ||
curl -u${{ secrets.JFROG_USERNAME }}:${{ secrets.JFROG_PASSWORD }} -XPUT "https://${{ secrets.JFROG_REGISTRY }}/hpccpl-debian-local/pool/LN/${_package};deb.distribution=${distribution};deb.component=LN;deb.architecture=amd64" -T ${{ needs.preamble.outputs.folder_build }}/${_package} | ||
done | ||
- name: Upload Assets to Jfrog (centos internal) | ||
if: ${{ matrix.ln && !matrix.container && !contains(matrix.os, 'ubuntu') && github.repository_owner == 'hpcc-systems'}} | ||
shell: bash | ||
run: | | ||
cd ${{ needs.preamble.outputs.folder_build }} | ||
packages=($(ls -1 hpccsystems-*.rpm )) | ||
for _package in ${packages[@]}; do | ||
distribution=$( echo "${_package}" | awk -F '.' '{print $4;}' ) | ||
curl -u${{ secrets.JFROG_USERNAME }}:${{ secrets.JFROG_PASSWORD }} -XPUT "https://${{ secrets.JFROG_REGISTRY }}/hpccpl-rpm-local/LN/${distribution}/x86_64/${_package}" -T ${{ needs.preamble.outputs.folder_build }}/${_package} | ||
done | ||
- name: Locate k8s deb file (internal) | ||
if: ${{ matrix.ln && matrix.container && !matrix.documentation }} | ||
id: ln-container | ||
run: | | ||
k8s_pkg_path=$(ls -t ${{ needs.preamble.outputs.folder_build }}/*64_k8s.deb 2>/dev/null | head -1) | ||
k8s_pkg_file=$(basename "$k8s_pkg_path") | ||
echo "k8s_pkg_file=$k8s_pkg_file" >> $GITHUB_OUTPUT | ||
echo "$k8s_pkg_file" | ||
- name: Create Docker Image (internal) | ||
uses: docker/build-push-action@v5 | ||
if: ${{ matrix.ln && matrix.container && !matrix.documentation }} | ||
with: | ||
builder: ${{ steps.buildx.outputs.name }} | ||
file: ${{ needs.preamble.outputs.folder_platform }}/dockerfiles/vcpkg/platform-core-${{ matrix.os }}/Dockerfile | ||
context: ${{ needs.preamble.outputs.folder_build }} | ||
push: false | ||
load: true | ||
build-args: | | ||
PKG_FILE=${{ steps.ln-container.outputs.k8s_pkg_file }} | ||
tags: | | ||
${{ secrets.JFROG_REGISTRY || 'dummy.io' }}/hpccpl-docker-local/platform-core-ln:${{ needs.preamble.outputs.hpcc_version }} | ||
cache-from: | | ||
type=registry,ref=hpccsystems/platform-core-${{ matrix.os }}:${{ needs.preamble.outputs.candidate_base_branch }} | ||
- name: JFrog Docker Push and Publish | ||
if: ${{ matrix.ln && matrix.container && !matrix.documentation && github.repository_owner == 'hpcc-systems' }} | ||
run: | | ||
jf docker push ${{ secrets.JFROG_REGISTRY || 'dummy.io' }}/hpccpl-docker-local/platform-core-ln:${{ needs.preamble.outputs.hpcc_version }} --build-name=platform-core-ln --build-number=${{ needs.preamble.outputs.hpcc_version }} --project=hpccpl | ||
jf rt bp platform-core-ln ${{ needs.preamble.outputs.hpcc_version }} --project=hpccpl | ||
# Enterprise Build --- | ||
- name: CMake Packages (enterprise) | ||
if: ${{ matrix.ee }} | ||
run: | | ||
mkdir -p ${{ needs.preamble.outputs.folder_build }} | ||
echo "${{ secrets.SIGNING_SECRET }}" > ${{ needs.preamble.outputs.folder_build }}/private.key | ||
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_ln }} --mount ${{ needs.preamble.outputs.mount_build }} ${{ steps.vars.outputs.docker_tag_candidate_base }} "${{ needs.preamble.outputs.gpg_import }} && \ | ||
cmake -S /hpcc-dev/LN -B /hpcc-dev/build -DHPCC_SOURCE_DIR=/hpcc-dev/HPCC-Platform ${{ needs.preamble.outputs.cmake_docker_config }} -DBUILD_LEVEL=ENTERPRISE -DSIGN_MODULES_PASSPHRASE=${{ secrets.SIGN_MODULES_PASSPHRASE }} -DSIGN_MODULES_KEYID=${{ secrets.SIGN_MODULES_KEYID }} -DPLATFORM=ON -DINCLUDE_PLUGINS=ON -DCONTAINERIZED=OFF -DSUPPRESS_REMBED=ON -DSUPPRESS_V8EMBED=ON -DSUPPRESS_SPARK=ON -DCPACK_STRIP_FILES=OFF && \ | ||
cmake --build /hpcc-dev/build --parallel $(nproc) --target package" | ||
- name: Upload Assets (enterprise) | ||
if: ${{ matrix.ee }} | ||
uses: ncipollo/[email protected] | ||
with: | ||
allowUpdates: true | ||
generateReleaseNotes: false | ||
prerelease: ${{ contains(github.ref, '-rc') }} | ||
owner: ${{ secrets.LNB_ACTOR }} | ||
repo: LN | ||
token: ${{ secrets.LNB_TOKEN }} | ||
tag: ${{ needs.preamble.outputs.internal_tag }} | ||
artifacts: "${{ needs.preamble.outputs.folder_build }}/hpccsystems-platform-enterprise*.deb,${{ needs.preamble.outputs.folder_build }}/hpccsystems-platform-enterprise*.rpm" | ||
# Common --- | ||
- name: Cleanup Environment | ||
if: always() | ||
run: rm -f ${{ needs.preamble.outputs.folder_build }}/private.key | ||
- name: Upload error logs | ||
if: ${{ failure() || cancelled() }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.os }}-${{ matrix.ln }}-${{ matrix.container }}-${{ matrix.documentation }}-logs | ||
path: ${{ needs.preamble.outputs.folder_build }}/**/*.log | ||
run-package-manifest: | ||
needs: [ preamble, build-docker, build-bare-metal, build-bare-metal-eclide ] | ||
Check failure on line 428 in .github/workflows/build-assets.yml GitHub Actions / Build AssetsInvalid workflow file
|
||
uses: ./.github/workflows/package-manifests.yml | ||
with: | ||
tag: ${{ needs.preamble.outputs.community_tag }} | ||
secrets: inherit |