fixed typo #944
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
# | |
# build-N-test-v1-Dev and build-N-test-v1-Release are nearly | |
# identical, but a few tests are commented out (to not needlessly stress CI system) | |
# for v1-Dev builds; and on.push.branches setting | |
# | |
# NOTE: I've tried many tricks - none which seem to work - to get this working on one file with one | |
# workflow and tests | |
# https://github.community/t/what-is-the-correct-if-condition-syntax-for-checking-matrix-os-version/16221 | |
# https://github.community/t/how-to-conditionally-include-exclude-items-in-matrix-eg-based-on-branch/16853 | |
# | |
# but none seem to work | |
# | |
name: build-N-test-v1-Dev | |
on: | |
push: | |
branches: | |
- v1-Dev | |
# - v1-Release | |
workflow_dispatch: | |
inputs: | |
ignored: | |
description: "ignored" | |
required: false | |
default: "" | |
env: | |
COMMIT_ID2BUILD: ${{ github.sha }} | |
# vm has 2 virtual CPUs, but 8GB ram, so jobs=5 (empirical), and QUICK_BUILD avoids some internal testing | |
MAKEFLAGS: "--jobs=3 QUICK_BUILD=1" | |
## NB: JOBS section IDENTICAL between v1-Dev and v1-Release files EXCEPT that on v1-Dev file | |
## comment out all entries marked with includeInDevBranchBuilds: false | |
jobs: | |
build-n-test-Linux: | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: | |
include: | |
## ubuntu 18.04 | |
- displayTargetName: ubuntu-18.04-g++-8 (Debug) | |
os: unix | |
compiler: g++-8 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-1804 | |
cpp_version: c++17 | |
config_name: Debug | |
# Turn off debug syms to save space, avoid failed build | |
extra_config_args: --apply-default-debug-flags --trace2file enable --debug-symbols false | |
includeInDevBranchBuilds: true | |
# - displayTargetName: ubuntu-18.04-g++-8 | |
# os: unix | |
# compiler: g++-8 | |
# runs_on: ubuntu-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-1804 | |
# cpp_version: c++17 | |
# config_name: Release | |
# extra_config_args: --apply-default-release-flags | |
# includeInDevBranchBuilds: false | |
# - displayTargetName: ubuntu-18.04-X2-raspberrypi | |
# os: unix | |
# compiler: arm-linux-gnueabihf-g++-8 | |
# runs_on: ubuntu-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-1804 | |
# cpp_version: c++17 | |
# config_name: Release | |
# extra_config_args: --apply-default-release-flags --compiler-driver arm-linux-gnueabihf-g++-8 --cross-compiling true | |
# includeInDevBranchBuilds: false | |
# ubuntu 20.04 | |
- displayTargetName: ubuntu-20.04-g++-10 (Debug) | |
os: unix | |
compiler: g++-10 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2004 | |
cpp_version: c++17 | |
config_name: Debug | |
extra_config_args: --apply-default-debug-flags --trace2file enable | |
includeInDevBranchBuilds: true | |
- displayTargetName: ubuntu-20.04-g++-10 | |
os: unix | |
compiler: g++-10 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2004 | |
cpp_version: c++17 | |
config_name: Release | |
extra_config_args: --apply-default-release-flags | |
includeInDevBranchBuilds: true | |
- displayTargetName: ubuntu-20.04-g++-10-c++2a | |
os: unix | |
compiler: g++-10 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2004 | |
cpp_version: c++2a | |
config_name: Release | |
extra_config_args: --apply-default-release-flags --trace2file enable | |
includeInDevBranchBuilds: true | |
- displayTargetName: ubuntu-20.04-X2-raspberrypi | |
os: unix | |
compiler: arm-linux-gnueabihf-g++-10 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2004 | |
cpp_version: c++2a | |
config_name: Release | |
extra_config_args: --apply-default-release-flags --compiler-driver arm-linux-gnueabihf-g++-10 --cross-compiling true | |
includeInDevBranchBuilds: true | |
- displayTargetName: ubuntu-20.04-X2-raspberrypi (Debug) | |
os: unix | |
compiler: arm-linux-gnueabihf-g++-10 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2004 | |
cpp_version: c++2a | |
config_name: Debug | |
# https://github.com/SophistSolutions/WhyTheFuckIsMyNetworkSoSlow/issues/22 - explains the suppression of ASAN | |
extra_config_args: --apply-default-debug-flags --compiler-driver arm-linux-gnueabihf-g++-10 --cross-compiling true --no-sanitize address | |
includeInDevBranchBuilds: true | |
# ubuntu 22.04 | |
# - displayTargetName: ubuntu-22.04-g++-12 (Debug) | |
# os: unix | |
# compiler: g++-12 | |
# runs_on: ubuntu-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2204 | |
# cpp_version: c++20 | |
# config_name: Debug | |
# extra_config_args: --apply-default-debug-flags --trace2file enable | |
# includeInDevBranchBuilds: false | |
# - displayTargetName: ubuntu-22.04-g++-12 (Debug-tsan-ubsan) | |
# os: unix | |
# compiler: g++-12 | |
# runs_on: ubuntu-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2204 | |
# cpp_version: c++20 | |
# config_name: Debug-tsan-ubsan | |
# extra_config_args: --apply-default-debug-flags --trace2file enable --sanitize none,thread,undefined | |
# includeInDevBranchBuilds: false | |
- displayTargetName: ubuntu-22.04-g++-12 | |
os: unix | |
compiler: g++-12 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2204 | |
cpp_version: c++20 | |
config_name: Release | |
extra_config_args: --apply-default-release-flags | |
includeInDevBranchBuilds: true | |
- displayTargetName: ubuntu-22.04-X2-raspberrypi | |
os: unix | |
compiler: arm-linux-gnueabihf-g++-12 | |
runs_on: ubuntu-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2204 | |
cpp_version: c++20 | |
config_name: Release | |
extra_config_args: --apply-default-release-flags --compiler-driver arm-linux-gnueabihf-g++-12 --cross-compiling true | |
includeInDevBranchBuilds: true | |
# - displayTargetName: ubuntu-22.04-X2-raspberrypi (Debug) | |
# os: unix | |
# compiler: arm-linux-gnueabihf-g++-12 | |
# runs_on: ubuntu-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-ubuntu-2204 | |
# cpp_version: c++20 | |
# config_name: Debug | |
# extra_config_args: --apply-default-debug-flags --compiler-driver arm-linux-gnueabihf-g++-12 --cross-compiling true | |
# includeInDevBranchBuilds: false | |
container: ${{ matrix.container_image }} | |
steps: | |
- name: Build System Info | |
if: ${{ matrix.os=='unix' }} | |
run: | | |
lsb_release -d 2>/dev/null || true | |
echo "CWD=" `pwd` | |
echo "nproc=" `nproc` | |
grep "model name" /proc/cpuinfo | head -1 | |
grep processor /proc/cpuinfo | wc -l | |
grep MemTotal /proc/meminfo | |
df -h | |
- name: Build System Info (Windows) | |
if: ${{ matrix.os=='windows' }} | |
run: | | |
echo "CWD=" `pwd` | |
df -h | |
# Couldn't get uses: actions/checkout@v2 working with submodules | |
- name: Checkout | |
run: | | |
git clone https://github.com/SophistSolutions/WhyTheFuckIsMyNetworkSoSlow.git | |
cd WhyTheFuckIsMyNetworkSoSlow | |
git checkout $COMMIT_ID2BUILD | |
git submodule update --recursive --init | |
- name: Create build root structure | |
shell: "bash" | |
run: | | |
cd WhyTheFuckIsMyNetworkSoSlow | |
make build-root | |
- name: Configure ${{ matrix.config_name }} | |
run: | | |
cd WhyTheFuckIsMyNetworkSoSlow | |
cd ThirdPartyComponents/Stroika/StroikaRoot && ./configure ${{ matrix.config_name }} --compiler-driver ${{ matrix.compiler }} ${{ matrix.extra_config_args }} --cppstd-version ${{ matrix.cpp_version }} | |
cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
- name: Make ThirdPartyComponents | |
# break out this make and clean to reduce disk space usage (running out of space on debug builds) | |
run: | | |
cd WhyTheFuckIsMyNetworkSoSlow | |
make --directory=ThirdPartyComponents CONFIGURATION=${{ matrix.config_name }} all | |
make --directory=ThirdPartyComponents CONFIGURATION=${{ matrix.config_name }} clean | |
- name: Make all | |
run: | | |
cd WhyTheFuckIsMyNetworkSoSlow | |
make all | |
- name: Archive Build Results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.displayTargetName }} Installers | |
path: | | |
WhyTheFuckIsMyNetworkSoSlow/Builds/${{ matrix.config_name }}/WhyTheFuckIsMyNetworkSoSlow/*.deb | |
build-n-test-MacOS: | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: | |
# Add to extra_config_args for build speed: --Xerces no --OpenSSL no --lzma no --boost no | |
include: | |
# - displayTargetName: MacOS-x86_64-Debug | |
# os: macos-latest | |
# runs_on: macos-latest | |
# config_name: Debug | |
# extra_config_args: --apply-default-debug-flags --trace2file enable | |
# includeInDevBranchBuilds: false | |
- displayTargetName: MacOS-x86_64 | |
os: macos-latest | |
runs_on: macos-latest | |
config_name: Release | |
extra_config_args: --apply-default-release-flags | |
includeInDevBranchBuilds: true | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ env.COMMIT_ID2BUILD }} | |
- name: Checkout submodules | |
run: git submodule update --init --recursive | |
- name: Build System Info | |
run: | | |
echo "CWD: `pwd`" | |
df -h | |
system_profiler SPSoftwareDataType | |
sw_vers | |
# If we had docker ability, most of these would be built into a docker file | |
- name: Install Basic Build requirements | |
run: | | |
brew install gnu-sed | |
brew install p7zip | |
brew install automake | |
make --no-print-directory --directory ThirdPartyComponents/Stroika/StroikaRoot install-realpath | |
- name: Create build root structure | |
run: | | |
make build-root | |
- name: Configure | |
run: | | |
cd ThirdPartyComponents/Stroika/StroikaRoot && ./configure ${{ matrix.config_name }} ${{ matrix.extra_config_args }} | |
cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
- name: Build All | |
run: | | |
make all | |
- name: Build System Info | |
run: | | |
df -h | |
- name: Archive Installers Results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.displayTargetName }} Installers | |
path: | | |
Builds/${{ matrix.config_name }}/WhyTheFuckIsMyNetworkSoSlow/* | |
build-n-test-Windows: | |
runs-on: ${{ matrix.runs_on }} | |
strategy: | |
matrix: | |
# Add to extra_config_args for build speed: --Xerces no --OpenSSL no --lzma no --boost no | |
include: | |
- displayTargetName: windows-x86-Debug | |
os: windows | |
runs_on: windows-latest | |
container_image: sophistsolutionsinc/whythefuckismynetworksoslow-windows-cygwin-vs2k19 | |
config_name: windows-x86-Debug | |
extra_config_args: --arch x86 --apply-default-debug-flags --trace2file enable | |
includeInDevBranchBuilds: true | |
# - displayTargetName: windows-x86-Release | |
# os: windows | |
# runs_on: windows-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-windows-cygwin-vs2k19 | |
# config_name: Release | |
# extra_config_args: --arch x86 --apply-default-release-flags --trace2file enable | |
# includeInDevBranchBuilds: false | |
# - displayTargetName: windows-x86_64-Debug | |
# os: windows | |
# runs_on: windows-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-windows-cygwin-vs2k19 | |
# config_name: Debug | |
# extra_config_args: --arch x86_64 --apply-default-debug-flags --trace2file enable | |
# includeInDevBranchBuilds: false | |
# - displayTargetName: windows-x86_64-Release | |
# os: windows | |
# runs_on: windows-latest | |
# container_image: sophistsolutionsinc/whythefuckismynetworksoslow-windows-cygwin-vs2k19 | |
# config_name: Release | |
# extra_config_args: --arch x86_64 --apply-default-release-flags --trace2file enable | |
# includeInDevBranchBuilds: false | |
env: | |
ARTIFACTS_DIR: "c:/Artifacts/" | |
steps: | |
- name: Build System Info | |
shell: "bash" | |
run: | | |
echo "CWD: `pwd`" | |
df -h | |
systeminfo | |
echo NUMBER_OF_PROCESSORS=$NUMBER_OF_PROCESSORS | |
- name: docker pull ${{ matrix.container_image }} | |
run: docker pull ${{ matrix.container_image }} | |
- name: Start docker build environment | |
run: | | |
docker run --tty --memory 5G --cpus 2 --storage-opt 'size=50GB' --detach --name buildContainer ${{ matrix.container_image }} | |
- name: Print Info about docker system | |
shell: "bash" | |
run: | | |
docker exec buildContainer systeminfo | |
docker exec buildContainer df -h | |
- name: Git Checkout | |
shell: "bash" | |
run: | | |
docker exec buildContainer git clone https://github.com/SophistSolutions/WhyTheFuckIsMyNetworkSoSlow.git | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow/ buildContainer git checkout $COMMIT_ID2BUILD | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow/ buildContainer git submodule update --recursive --init | |
- name: Create build root structure | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow buildContainer make build-root | |
- name: Configure | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow/ThirdPartyComponents/Stroika/StroikaRoot buildContainer sh -c "./configure ${{ matrix.config_name }} ${{ matrix.extra_config_args }}" | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow/ThirdPartyComponents/Stroika/StroikaRoot buildContainer cat ConfigurationFiles/${{ matrix.config_name }}.xml | |
- name: Build | |
shell: "bash" | |
run: | | |
docker exec --workdir c:/WhyTheFuckIsMyNetworkSoSlow --env MAKEFLAGS="$MAKEFLAGS" buildContainer make all | |
- name: Build System Info | |
shell: "bash" | |
run: | | |
df -h | |
docker exec buildContainer df -h | |
- name: Copy Build Artifacts | |
shell: "bash" | |
# due to flaws in docker (windows must stop) - and cp no wildcards | |
run: | | |
docker stop buildContainer | |
docker cp buildContainer:WhyTheFuckIsMyNetworkSoSlow/Builds/${{ matrix.config_name }}/ $ARTIFACTS_DIR 2> /dev/null | |
- name: Archive Installer Results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.displayTargetName }} Installers | |
path: | | |
${{ env.ARTIFACTS_DIR }}/WhyTheFuckIsMyNetworkSoSlow/*.msi |