Skip to content

Commit

Permalink
overhaul and provide updated editions for stability, add ci
Browse files Browse the repository at this point in the history
  • Loading branch information
jeking3 committed Jan 30, 2022
1 parent e1b55b4 commit 9625bdc
Show file tree
Hide file tree
Showing 21 changed files with 441 additions and 394 deletions.
109 changes: 109 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#
# Copyright 2022 James E. King III
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE.txt or copy at http://boost.org/LICENSE_1_0.txt)
#
---
name: Test

on:
pull_request:
branches:
- main
- master
push:
branches:
- main
- master

jobs:
posix:
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
include:
- { distro: ubuntu, edition: focal, arch: x86_64, toolset: clang, stdlib: native }
- { distro: ubuntu, edition: focal, arch: x86_64, toolset: clang, stdlib: libc++ }
- { distro: ubuntu, edition: focal, arch: x86_64, toolset: gcc, stdlib: native }
- { distro: ubuntu, edition: focal, arch: x86_64, toolset: gcc, stdlib: libc++ }

- { distro: ubuntu, edition: focal, arch: arm64, toolset: clang, stdlib: native, limit: minimal }
- { distro: ubuntu, edition: focal, arch: arm64, toolset: clang, stdlib: libc++, limit: minimal }
- { distro: ubuntu, edition: focal, arch: arm64, toolset: gcc, stdlib: native, limit: minimal }
- { distro: ubuntu, edition: focal, arch: arm64, toolset: gcc, stdlib: libc++, limit: minimal }

- { distro: fedora, edition: 34, arch: s390x, toolset: clang, stdlib: native, limit: minimal }
- { distro: fedora, edition: 34, arch: s390x, toolset: clang, stdlib: libc++, limit: minimal }
- { distro: fedora, edition: 34, arch: s390x, toolset: gcc, stdlib: native, limit: minimal }
- { distro: fedora, edition: 34, arch: s390x, toolset: gcc, stdlib: libc++, limit: minimal }

timeout-minutes: 120
runs-on: ubuntu-latest
env:
BDDE_DISTRO: ${{ matrix.distro }}
BDDE_EDITION: ${{ matrix.edition }}
BDDE_ARCH: ${{ matrix.arch }}

steps:
- uses: actions/checkout@v2

- name: Run script tests
run: |
git submodule update --init bin/linux/test/bash_unit
make test
- name: Enable multiarch
run: |
sudo apt-get install -y binfmt-support qemu-user-static
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
echo "$(pwd)/bin/linux" >> $GITHUB_PATH
- name: bdde-pull
run: bdde-pull

- name: bdde-clone
run: |
export BOOST_ROOT=$(pwd)/boost-root
bdde-clone
chmod -R 777 ${BOOST_ROOT}
echo "BOOST_ROOT=${BOOST_ROOT}" >> $GITHUB_ENV
echo "B2_ARGS=toolset=${{ matrix.toolset }} stdlib=${{ matrix.stdlib }}" >> $GITHUB_ENV
- name: Bootstrap
working-directory: ./boost-root
run: bdde bootstrap.sh --with-toolset="${{ matrix.toolset }}"

- name: Platform details
working-directory: ./boost-root/libs/predef/test
run: |
bdde b2 ${{ env.B2_ARGS }} -a info_as_cpp
find ../../../bin.v2/libs/predef/test/info_as_cpp.test/ -name info_as_cpp.run -exec cat {} \;
- name: bdde-asan
working-directory: ./boost-root/libs/format
if: "matrix.limit != 'minimal'"
run: bdde-asan ${{ env.B2_ARGS }}

- name: bdde-tsan
working-directory: ./boost-root/libs/format
if: "matrix.limit != 'minimal'"
run: bdde-tsan ${{ env.B2_ARGS }}

- name: bdde-ubsan
working-directory: ./boost-root/libs/format
run: bdde-ubsan ${{ env.B2_ARGS }}

- name: bdde-valgrind
working-directory: ./boost-root/libs/format
if: "matrix.limit != 'minimal'"
run: bdde-ubsan ${{ env.B2_ARGS }}

- name: Build all
working-directory: ./boost-root
if: "matrix.limit != 'minimal'"
run: bdde b2 ${{ env.B2_ARGS }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
/boost/
/qemu-*
.vscode
14 changes: 0 additions & 14 deletions .travis.yml

This file was deleted.

186 changes: 0 additions & 186 deletions Dockerfile.deb-x86_64

This file was deleted.

46 changes: 23 additions & 23 deletions Dockerfile.red-ppc64 → Dockerfile.fedora-34.common
Original file line number Diff line number Diff line change
@@ -1,38 +1,37 @@
#
# Copyright (c) 2018 - 2019 James E. King III
# Copyright (c) 2018 - 2022 James E. King III
#
# Use, modification, and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Boost Docker Build Environment:
# Boost Docker Development Environment
#
# - PowerPC
# - Big Endian
#
# multiarch prerequisites:
#
# 1. Install the qemu-user-static package.
# 2. Run `docker run --rm --privileged multiarch/qemu-user-static:register --reset`
# 3. Copy /usr/bin/qemu-ppc64-static to the bdde directory.
# Common redhat family commands to install necessary files.
#

FROM multiarch/fedora:25-ppc64
MAINTAINER James E. King III <jking@apache.org>
ENV CONTAINER_USER=boost
ENV DEBIAN_FRONTEND noninteractive
WORKDIR /boost

COPY qemu-ppc64-static /usr/bin/qemu-ppc64-static

RUN dnf groupinstall -y 'Development Tools'
RUN dnf install -y util-linux-user libxslt
RUN dnf install -y sudo
RUN dnf install -y gcc-c++
RUN dnf install -y gdb
RUN dnf install -y \
clang \
cmake \
cppcheck \
gcc-c++ \
gdb \
libxslt \
sudo \
util-linux-user \
which \
valgrind

#
# # Load apt-utils first, fixes warnings
### late additions to avoid huge rebuilds, consolidate on next big release

RUN dnf install -y libcxx libcxx-devel libcxxabi-devel

# the following stuff hasn't been fully translated to redhat/fedora-speak yet

# Load apt-utils first, fixes warnings
#
# RUN apt-get update && \
# apt-get install -y --no-install-recommends \
Expand Down Expand Up @@ -178,7 +177,7 @@ RUN dnf install -y gdb
# License: None specified at time of import
# Add non-root user for container but give it sudo access.
# Password is the same as the username
RUN useradd -m ${CONTAINER_USER} && \
RUN useradd -m ${CONTAINER_USER} -g wheel && \
echo ${CONTAINER_USER}:${CONTAINER_USER} | chpasswd && \
echo "${CONTAINER_USER} ALL=(root) ALL" >> /etc/sudoers
RUN chsh --shell /bin/bash ${CONTAINER_USER}
Expand All @@ -187,3 +186,4 @@ USER ${CONTAINER_USER}

ADD --chown=boost assets/home/boost/user-config.jam /home/boost/user-config.jam
ENV PATH="/boost:/bdde/bin/linux:$PATH"
WORKDIR /boost
Loading

0 comments on commit 9625bdc

Please sign in to comment.