openssl 3.4.1 #4838
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
# | |
# Docs on github action files: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
# | |
# build-N-test | |
# | |
name: build-N-test | |
on: | |
push: | |
workflow_dispatch: | |
inputs: | |
run_all: | |
description: "run all" | |
required: false | |
default: "true" | |
container_version: | |
description: "Container Version" | |
required: false | |
default: "v3" | |
deploy_doxygen: | |
description: "deploy_doxygen" | |
required: false | |
default: "false" | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
LinuxMatrixPrep: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- id: set-matrix | |
run: | | |
branchName=$(echo '${{ github.ref }}' | sed 's,refs/heads/,,g') | |
matrix=$(jq --arg branchName "$branchName" 'map( | |
. | select((.run_on_branch==$branchName) or (.run_on_branch=="always") or ("${{github.event.inputs.run_all}}"=="true") and (.run_on_branch!="never")) | select(.build_job=="Linux") | |
)' .github/workflows/build-N-test-Matrix.json) | |
echo "matrix={\"include\":$(echo $matrix)}" >> $GITHUB_OUTPUT | |
MacOSMatrixPrep: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- id: set-matrix | |
run: | | |
branchName=$(echo '${{ github.ref }}' | sed 's,refs/heads/,,g') | |
matrix=$(jq --arg branchName "$branchName" 'map( | |
. | select((.run_on_branch==$branchName) or (.run_on_branch=="always") or ("${{github.event.inputs.run_all}}"=="true")) | select(.build_job=="MacOS") | |
)' .github/workflows/build-N-test-Matrix.json) | |
echo "matrix={\"include\":$(echo $matrix)}" >> $GITHUB_OUTPUT | |
WindowsMatrixPrep: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- id: set-matrix | |
run: | | |
branchName=$(echo '${{ github.ref }}' | sed 's,refs/heads/,,g') | |
matrix=$(jq --arg branchName "$branchName" 'map( | |
. | select((.run_on_branch==$branchName) or (.run_on_branch=="always") or ("${{github.event.inputs.run_all}}"=="true")) | select(.build_job=="Windows") | |
)' .github/workflows/build-N-test-Matrix.json) | |
echo "matrix={\"include\":$(echo $matrix)}" >> $GITHUB_OUTPUT | |
Linux: | |
needs: LinuxMatrixPrep | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: ${{fromJson(needs.LinuxMatrixPrep.outputs.matrix)}} | |
env: | |
# (HISTORICAL): vm has 2 virtual CPUs, but 8GB ram, so jobs=3 (empirical), and QUICK_BUILD avoids some internal testing | |
# vm has 4 virtual CPUs, but 16GB ram, so jobs=4 (empirical. tried 5 and 6 with no significant improvement), and QUICK_BUILD avoids some internal testing --LGP 2025-02-07 | |
MAKEFLAGS: "--jobs=4 QUICK_BUILD=1" | |
ARTIFACTS_DIR: "/tmp/Artifacts/" | |
ARTIFACTS_DIR_BUILDLOGS: "${ARTIFACTS_DIR}/BUILD_LOGS/" | |
container: ${{ matrix.container_image }}:${{github.event.inputs.container_version || 'v3'}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build System Info (container version ${{github.event.inputs.container_version || 'v3'}}) | |
run: | | |
lsb_release -d 2>/dev/null || true | |
echo "CWD=" `pwd` | |
echo "hw.ncpu=" $(sysctl -n hw.ncpu) | |
echo "hw.memsize=" $(sysctl -n hw.memsize) | |
grep "model name" /proc/cpuinfo | head -1 | |
grep processor /proc/cpuinfo | wc -l | |
grep MemTotal /proc/meminfo | |
df -h | |
- name: Configure ${{ matrix.config_name }} | |
run: | | |
./configure ${{ matrix.config_name }} --compiler-driver ${{ matrix.compiler }} ${{ matrix.extra_config_args }} --cppstd-version ${{ matrix.cpp_version }} | |
cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
# Break out third-party-components to do clean so we dont run out of disk space, and break out TPC AND library | |
# to show the summary time for each part | |
- name: Make third-party-components | |
run: | | |
make third-party-components | |
- name: Copy Build Artifacts (Log Data etc) | |
if: always() | |
run: | | |
mkdir -p ${ARTIFACTS_DIR_BUILDLOGS} | |
mkdir -p \ | |
"${ARTIFACTS_DIR_BUILDLOGS}" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/boost/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/GoogleTest/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/libxml2/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/lzma/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/openssl/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/sqlite/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/Xerces/" \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/zlib/" | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/boost/BOOTSTRAP-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/boost/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/boost/ConfigureAndBuild-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/boost/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/GoogleTest/INSTALL-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/GoogleTest/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/libxml2/CONFIGURE-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/libxml2/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/libxml2/BUILD-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/libxml2/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/lzma/BUILD-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/lzma/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/openssl/CONFIG-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/openssl/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/openssl/INSTALL-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/openssl/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/sqlite/BUILD-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/sqlite/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/Xerces/BUILD-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/Xerces/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/Xerces/INSTALL-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/Xerces/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/zlib/BUILD-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/zlib/" || : | |
cp "IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/zlib/INSTALL-OUT.txt" "${ARTIFACTS_DIR_BUILDLOGS}/ThirdPartyComponents/zlib/" || : | |
- name: Save space (Safe) | |
if: always() | |
run: | | |
make --directory=ThirdPartyComponents --silent clean | |
- name: Make libraries and tools | |
run: | | |
make libraries tools | |
- name: Save space | |
if: always() | |
run: | | |
echo "*************Before save space*************:" | |
df -h | |
du -hs Builds/*/* IntermediateFiles/*/* ThirdPartyComponents/Origs-Cache/ | |
make --directory Library --silent clean | |
make --directory ThirdPartyComponents --silent clean | |
rm -f Builds/${{ matrix.config_name }}/ThirdPartyComponents/bin/* ThirdPartyComponents/Origs-Cache/* | |
echo ""*************After cleanups"*************:" | |
df -h | |
du -hs Builds/*/* IntermediateFiles/*/* ThirdPartyComponents/* | |
- name: Run Tests | |
run: | | |
make run-tests | |
- name: Save space | |
if: false | |
run: | | |
echo "*************Before save space*************:" | |
df -h | |
du -hs Builds/*/* IntermediateFiles/*/* | |
make --directory Tests clobber | |
echo ""*************After cleanups"*************:" | |
df -h | |
du -hs Builds/*/* IntermediateFiles/*/* | |
- name: Make samples | |
run: | | |
make samples | |
- name: Build System Info | |
run: | | |
df -h | |
- name: Copy Build Artifacts (Sample apps etc) | |
if: always() | |
run: | | |
mkdir -p $ARTIFACTS_DIR | |
(cp -r --dereference "${NORMALIZED_WORKSPACE_DIR_}/Builds/${{ matrix.config_name }}/"Samples-* "${ARTIFACTS_DIR}") || echo "Error copying builds ignored" | |
rm -rf "${ARTIFACTS_DIR}/"{ThirdPartyComponents,Tests,*.lib} "${ARTIFACTS_DIR}/"*/*.{pdb,wixpdb} | |
COPY_FROM_ROOT_="IntermediateFiles/${{ matrix.config_name }}/" | |
mkdir -p \ | |
"${ARTIFACTS_DIR_BUILDLOGS}/Samples-HTMLUI/html/" \ | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/NPM-Install.txt" "${ARTIFACTS_DIR_BUILDLOGS}/Samples-HTMLUI/html/" || : | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/Build.txt" "${ARTIFACTS_DIR_BUILDLOGS}/Samples-HTMLUI/html/" || : | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/WIX-Installer-Build-Output.txt" "${ARTIFACTS_DIR_BUILDLOGS}/Samples-HTMLUI/" || : | |
- name: Archive Samples Results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Sample apps (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
Builds/${{ matrix.config_name }}/*Samples-* | |
- name: Archive Log Data | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Log Data (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
${{ env.ARTIFACTS_DIR }}PerformanceDump.txt | |
${{ env.ARTIFACTS_DIR_BUILDLOGS }} | |
/tmp/Trace*.txt | |
- name: Archive Core-Dumps | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CoreDumps (${{ matrix.displayTargetName }}) | |
if-no-files-found: ignore | |
path: | | |
*core* | |
MacOS: | |
needs: MacOSMatrixPrep | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: ${{fromJson(needs.MacOSMatrixPrep.outputs.matrix)}} | |
env: | |
# vm has 3 virtual CPUs, but 8GB ram, so jobs=3 (empirical), and QUICK_BUILD avoids some internal testing --LGP 2025-05-08 | |
MAKEFLAGS: "--jobs=3 QUICK_BUILD=1" | |
# Workaround for LIBIDB2 not found https://github.com/actions/runner-images/issues/9638 | |
LIBRARY_PATH: "/opt/homebrew/lib" | |
steps: | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.xcode }} | |
- uses: actions/checkout@v4 | |
- name: Build System Info | |
run: | | |
echo "CWD: `pwd`" | |
df -h | |
system_profiler SPSoftwareDataType | |
system_profiler SPDeveloperToolsDataType | |
sw_vers | |
echo " X-CODE: `xcodebuild -version | tr '\n' ';'`" | |
echo "LIBRARY_PATH = $LIBRARY_PATH" | |
echo "hw.ncpu=" $(sysctl -n hw.ncpu) | |
echo "hw.memsize=" $(sysctl -n hw.memsize) | |
# If we had docker ability, most of these would be built into a docker file | |
- name: Install Basic Build requirements | |
run: | | |
brew install -q gnu-sed | |
brew install -q p7zip | |
brew install -q autoconf | |
brew install -q libtool | |
brew install -q automake | |
make install-realpath | |
- name: Configure | |
run: | | |
./configure ${{ matrix.config_name }} ${{ matrix.extra_config_args }} | |
cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
- name: Build third-party-components | |
run: | | |
make third-party-components | |
make clean | |
- name: Build Library and Tools | |
run: | | |
make libraries tools | |
- name: Build Samples | |
run: | | |
make samples | |
- name: Build Tests | |
run: | | |
make tests | |
- name: Run-Tests | |
run: | | |
make run-tests | |
- name: Workaround GitHub-Actions-MacOS Issue with env.TMPDIR | |
if: always() | |
run: | | |
mkdir /tmp/LOGS-ARCHIVE | |
cp $TMPDIR/Trace*.txt /tmp/LOGS-ARCHIVE || : | |
- name: DEBUG Workaround GitHub-Actions-MacOS Issue with env.TMPDIR | |
if: always() | |
run: | | |
echo "TMPDIR=$TMPDIR" | |
echo "TMPDIR using ENV.TMPDIR=${{ env.TMPDIR }}" | |
# Just the echo line above shows empty, and then the ls line causes exit 1/failure | |
#ls -l ${{ env.TMPDIR }}/Trace*.txt | |
#if this gets fixed, then lose Workaround GitHub-Actions-MacOS, and directly reference ${{ env.TMPDIR }}/Trace*.txt in Archive Log Data | |
- name: Build System Info | |
run: | | |
df -h | |
- name: Archive Log Data | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Log Data (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
Builds/${{ matrix.config_name }}/PerformanceDump.txt | |
/tmp/LOGS-ARCHIVE | |
IntermediateFiles/${{ matrix.config_name }}/Samples-HTMLUI/*-Installer-Build-Output.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/boost/BOOTSTRAP-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/boost/ConfigureAndBuild-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/curl/BUILD-CONF-TOOLS-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/curl/CONFIGURE-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/curl/BUILD-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/GoogleTest/INSTALL-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/libxml2/CONFIGURE-OUT.txt | |
IntermediateFiles/${{ matrix.config_name }}/ThirdPartyComponents/libxml2/BUILD-OUT.txt | |
${{ env.TMPDIR }}/Trace*.txt | |
- name: Archive Sample Results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Sample apps (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
Builds/${{ matrix.config_name }}/Samples-* | |
Windows: | |
needs: WindowsMatrixPrep | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: ${{fromJson(needs.WindowsMatrixPrep.outputs.matrix)}} | |
env: | |
# see docker run for --cpus and --memory, and adjust --jobs accodingly (last done 2025-02-07), and QUICK_BUILD avoids some internal testing | |
MAKEFLAGS: "--jobs=4 QUICK_BUILD=1" | |
ARTIFACTS_DIR: "c:/Artifacts/" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build System Info (container version ${{github.event.inputs.container_version || 'v3'}}) | |
shell: "bash" | |
run: | | |
echo "CWD: `pwd`" | |
echo "GITHUB_WORKSPACE: ${GITHUB_WORKSPACE}" | |
df -h | |
systeminfo | |
echo NUMBER_OF_PROCESSORS=$NUMBER_OF_PROCESSORS | |
# No actual need todo this step (would be done implicitly/automatically) - but do to track how long the step takes (13min) | |
- name: docker pull ${{ matrix.container_image }}:${{github.event.inputs.container_version || 'v3'}} | |
run: docker pull ${{ matrix.container_image }}:${{github.event.inputs.container_version || 'v3'}} | |
- name: Start docker build environment | |
shell: "bash" | |
# docker run --interactive --memory 7G --cpus 2 --storage-opt 'size=50GB' -v "${GITHUB_WORKSPACE}:c:\Stroika" --detach --name buildContainer ${{ matrix.container_image }}:${{github.event.inputs.container_version || 'v3'}} ash -c "c:/msys64/usr/bin/rebaseall -v; exec bash" | |
# was running out of memory with 7GB docker container (doing build of help) - and appears running on 16G vm, 4 log cpus, and 147G space, so up mem# /disk (from 50GB) also appears host as 4 vir cpus, so up # cpus from 2 to 4-- LGP 2025-02-07 | |
run: | | |
docker run --interactive --memory 15G --cpus 4 --storage-opt 'size=120GB' \ | |
-v "${GITHUB_WORKSPACE}:c:\Stroika" --detach --name buildContainer \ | |
${{ matrix.container_image }}:${{github.event.inputs.container_version || 'v3'}} bash | |
- name: Print Info about docker system | |
shell: "bash" | |
run: | | |
docker ps -a | |
docker exec buildContainer systeminfo | |
docker exec buildContainer echo NUMBER_OF_PROCESSORS=$NUMBER_OF_PROCESSORS | |
docker exec buildContainer df -h | |
- name: Configure | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/Stroika buildContainer sh -c "./configure ${{ matrix.config_name }} ${{ matrix.extra_config_args }}" | |
docker exec --workdir c:/Stroika buildContainer cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
- name: Build Library and Tools | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/Stroika --env MAKEFLAGS="$MAKEFLAGS" buildContainer make libraries tools | |
- name: Build Samples | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/Stroika --env MAKEFLAGS="$MAKEFLAGS" buildContainer make samples | |
- name: Build Tests | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/Stroika --env MAKEFLAGS="$MAKEFLAGS" buildContainer make tests | |
- name: Run-Tests | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/Stroika --env MAKEFLAGS="$MAKEFLAGS" buildContainer make run-tests | |
- name: Build System Info | |
shell: "bash" | |
run: | | |
df -h | |
docker exec buildContainer df -h | |
- name: Copy Build Artifacts (Log Data and Sample apps etc) | |
shell: "bash" | |
if: always() | |
run: | | |
# Because of bind mount, no longer copy out of container, already built in outside filesystem | |
# (except $TMPDIR: Just copy out from container the stuff in /tmp) | |
NORMALIZED_WORKSPACE_DIR_=`cygpath --mixed "${GITHUB_WORKSPACE}"` | |
# echo "ARTIFACTS_DIR=${ARTIFACTS_DIR}" | |
# echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" | |
# echo "NORMALIZED_WORKSPACE_DIR_=${NORMALIZED_WORKSPACE_DIR_}" | |
mkdir -p $ARTIFACTS_DIR | |
(docker exec --workdir c:/ buildContainer bash -c 'mkdir -p c:/TRACE_LOGS; cp $TEMP/Trace*.txt c:/TRACE_LOGS/') || : | |
# due to flaws in docker (windows must stop) - and docker cp doesn't support wildcards | |
docker stop buildContainer | |
(docker cp "buildContainer:c:/TRACE_LOGS" "${ARTIFACTS_DIR}") || echo "error copying tracelogs ignored" | |
(cp -r --dereference "${NORMALIZED_WORKSPACE_DIR_}/Builds/${{ matrix.config_name }}/"Samples-* "${ARTIFACTS_DIR}") || echo "Error copying builds ignored" | |
#PDB files are big - no need to save if I want to debug, will do from source/rebuild | |
rm -rf "${ARTIFACTS_DIR}/"{ThirdPartyComponents,Tests,*.lib} "${ARTIFACTS_DIR}/"*/*.{pdb,wixpdb} | |
COPY_FROM_ROOT_="${NORMALIZED_WORKSPACE_DIR_}/IntermediateFiles/${{ matrix.config_name }}/" | |
COPY_TO_ROOT_="${ARTIFACTS_DIR}/BUILD_LOGS/" | |
mkdir -p \ | |
"${COPY_TO_ROOT_}" \ | |
"${COPY_TO_ROOT_}/Samples-HTMLUI/html/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/boost/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/GoogleTest/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/libxml2/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/lzma/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/openssl/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/sqlite/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/Xerces/" \ | |
"${COPY_TO_ROOT_}/ThirdPartyComponents/zlib/" | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/NPM-Install.txt" "${COPY_TO_ROOT_}/Samples-HTMLUI/html/" || : | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/Build.txt" "${COPY_TO_ROOT_}/Samples-HTMLUI/html/" || : | |
cp "${COPY_FROM_ROOT_}/Samples-HTMLUI/html/WIX-Installer-Build-Output.txt" "${COPY_TO_ROOT_}/Samples-HTMLUI/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/boost/BOOTSTRAP-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/boost/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/boost/ConfigureAndBuild-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/boost/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/GoogleTest/INSTALL-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/GoogleTest/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/libxml2/CONFIGURE-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/libxml2/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/libxml2/BUILD-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/libxml2/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/lzma/BUILD-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/lzma/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/openssl/CONFIG-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/openssl/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/openssl/INSTALL-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/openssl/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/sqlite/BUILD-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/sqlite/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/Xerces/BUILD-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/Xerces/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/Xerces/INSTALL-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/Xerces/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/zlib/BUILD-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/zlib/" || : | |
cp "${COPY_FROM_ROOT_}/ThirdPartyComponents/zlib/INSTALL-OUT.txt" "${COPY_TO_ROOT_}/ThirdPartyComponents/zlib/" || : | |
- name: Archive Log Data | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Log Data (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
${{ env.ARTIFACTS_DIR }}PerformanceDump.txt | |
${{ env.ARTIFACTS_DIR }}BUILD_LOGS | |
${{ env.ARTIFACTS_DIR }}TRACE_LOGS | |
- name: Archive Sample Results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Sample apps (${{ matrix.displayTargetName }}) | |
if-no-files-found: warn | |
path: | | |
${{ env.ARTIFACTS_DIR }}Samples-* | |
codeql-analyze: | |
name: codeql-analyze | |
runs-on: ubuntu-latest | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
strategy: | |
fail-fast: false | |
matrix: | |
language: [ 'cpp' ] | |
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] | |
# Learn more: | |
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed | |
env: | |
# QUICK_BUILD avoids some internal testing | |
MAKEFLAGS: "--jobs=4 QUICK_BUILD=1" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install tools required to build Stroika | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libtool-bin pkg-config cmake automake autoconf libtool-bin | |
sudo apt-get install -y g++ | |
- name: Configure | |
# NOTE - disable optimizer due bugs/errors in optimizer (link errors) - but no matter, cuz also slows down analysis (I think) | |
# --debug-symbols false to save space and cuz no need | |
run: | | |
./configure Release --compiler-driver g++ --apply-default-release-flags --lto disable --append-CXXFLAGS -O0 --debug-symbols false | |
cat ConfigurationFiles/Release.xml | |
# Break out third-party-components to do clean so we dont run out of disk space, and break out TPC AND library | |
# to show the summary time for each part | |
- name: Make third-party-components | |
run: | | |
make third-party-components | |
make clean | |
# Initializes the CodeQL tools for scanning. | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: ${{ matrix.language }} | |
# If you wish to specify custom queries, you can do so here or in a config file. | |
# By default, queries listed here will override any specified in a config file. | |
# Prefix the list here with "+" to use these queries and those in the config file. | |
# queries: ./path/to/local/query, your-org/your-repo/queries@main | |
- name: Make Stroika | |
run: make all | |
- name: Archive Log Data | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Log Data (codeql-analyze) | |
if-no-files-found: warn | |
path: | | |
IntermediateFiles/Release/Samples-HTMLUI/*-Installer-Build-Output.txt | |
IntermediateFiles/Release/ThirdPartyComponents/curl/CONFIGURE-OUT.txt | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 | |
doxygen: | |
runs-on: ubuntu-latest | |
container: sophistsolutionsinc/stroika-buildvm-ubuntu2404-regression-tests | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build System Info (container version ${{github.event.inputs.container_version || 'v3'}}) | |
run: | | |
lsb_release -d 2>/dev/null || true | |
echo "CWD=" `pwd` | |
echo "hw.ncpu=" $(sysctl -n hw.ncpu) | |
echo "hw.memsize=" $(sysctl -n hw.memsize) | |
grep "model name" /proc/cpuinfo | head -1 | |
grep processor /proc/cpuinfo | wc -l | |
grep MemTotal /proc/meminfo | |
df -h | |
- name: Make Documentation | |
run: | | |
make documentation | |
(cd Builds; tar xvf Stroika-Doxygen-Help.tar.gz) | |
- name: Archive Documentation Results | |
uses: actions/upload-artifact@v4 | |
# https://github.com/actions/upload-artifact/issues/506 include matrix configname until bug fixed --LGP 2024-11-27 | |
continue-on-error: true | |
with: | |
name: Stroika-Doxygen-Help | |
path: | | |
Builds/Stroika-Doxygen-Help | |
- name: Archive Log Data | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Log Data (doxygen) | |
if-no-files-found: warn | |
path: | | |
IntermediateFiles/Doxygen/BUILD.txt | |
# Single deploy job since we're just deploying help to github pages | |
deploy-doxygen: | |
needs: doxygen | |
if: github.event.inputs.deploy_doxygen == 'true' || github.ref == 'refs/heads/v3-Release' | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
container: sophistsolutionsinc/stroika-buildvm-ubuntu2404-regression-tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Make Documentation (since I dont know how to copy result from other step - this is simpler) | |
run: | | |
make documentation | |
(cd Builds; tar xvf Stroika-Doxygen-Help.tar.gz) | |
- name: Setup Pages | |
uses: actions/configure-pages@v5 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: 'Builds/Stroika-Doxygen-Help' | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |