Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
258 changes: 258 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
name: GitHub Actions CI

on:
pull_request:
push:
branches:
- master
- develop
- githubactions*
- feature/**
- fix/**
- pr/**

jobs:
posix:
strategy:
fail-fast: false
matrix:
include:
- name: "TEST_CMAKE=TRUE Job 0"
buildtype: "88140f0f85-2319b6d45f"
packages: ""
packages_to_remove: ""
os: "ubuntu-20.04"
container: "ubuntu:16.04"
cxx: "g++"
sources: ""
llvm_os: ""
llvm_ver: ""
test_cmake: "TRUE"
- name: "TOOLSET=gcc COMPILER=g++ CXXSTD=c++11 Job 1"
buildtype: "boost"
packages: ""
packages_to_remove: ""
os: "ubuntu-20.04"
container: "ubuntu:16.04"
cxx: "g++"
sources: ""
llvm_os: ""
llvm_ver: ""
toolset: "gcc"
compiler: "g++"
cxxstd: "c++11"
- name: "TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 Job 2"
buildtype: "boost"
packages: ""
packages_to_remove: ""
os: "ubuntu-18.04"
cxx: "clang++"
sources: ""
llvm_os: ""
llvm_ver: ""
toolset: "clang"
compiler: "clang++"
cxxstd: "c++11"

runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}

steps:
- name: Check if running in container
if: matrix.container != ''
run: echo "GHA_CONTAINER=${{ matrix.container }}" >> $GITHUB_ENV
- name: If running in container, upgrade packages
if: matrix.container != ''
run: |
apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata && apt-get -o Acquire::Retries=3 install -y sudo software-properties-common wget curl apt-transport-https make apt-file sudo unzip libssl-dev build-essential autotools-dev autoconf automake g++ libc++-helpers python ruby cpio gcc-multilib g++-multilib pkgconf python3 ccache libpython-dev
sudo apt-add-repository ppa:git-core/ppa
sudo apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 -y install git
python_version=$(python3 -c 'import sys; print("{0.major}.{0.minor}".format(sys.version_info))')
sudo wget https://bootstrap.pypa.io/pip/$python_version/get-pip.py
sudo python3 get-pip.py
sudo /usr/local/bin/pip install cmake

- uses: actions/checkout@v2

- name: linux
shell: bash
env:
CXX: ${{ matrix.cxx }}
SOURCES: ${{ matrix.sources }}
LLVM_OS: ${{ matrix.llvm_os }}
LLVM_VER: ${{ matrix.llvm_ver }}
PACKAGES: ${{ matrix.packages }}
PACKAGES_TO_REMOVE: ${{ matrix.packages_to_remove }}
JOB_BUILDTYPE: ${{ matrix.buildtype }}
TEST_CMAKE: ${{ matrix.test_cmake }}
TOOLSET: ${{ matrix.toolset }}
COMPILER: ${{ matrix.compiler }}
CXXSTD: ${{ matrix.cxxstd }}
TRAVIS_BRANCH: ${{ github.base_ref }}
TRAVIS_OS_NAME: "linux"
run: |
echo '==================================> SETUP'
echo '==================================> PACKAGES'
set -e
if [ -n "$PACKAGES_TO_REMOVE" ]; then sudo apt-get purge -y $PACKAGES_TO_REMOVE; fi
echo ">>>>> APT: REPO.."
for i in {1..3}; do sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" && break || sleep 2; done

if test -n "${LLVM_OS}" ; then
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
if test -n "${LLVM_VER}" ; then
sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main"
else
# Snapshot (i.e. trunk) build of clang
sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS} main"
fi
fi
echo ">>>>> APT: UPDATE.."
sudo -E apt-get -o Acquire::Retries=3 update
if test -n "${SOURCES}" ; then
echo ">>>>> APT: INSTALL SOURCES.."
for SOURCE in $SOURCES; do
sudo -E apt-add-repository ppa:$SOURCE
done
fi
echo ">>>>> APT: INSTALL ${PACKAGES}.."
sudo -E DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 -y --no-install-suggests --no-install-recommends install ${PACKAGES}

echo '==================================> INSTALL AND COMPILE'
set -e
export TRAVIS_BUILD_DIR=$(pwd)
export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')}
export VCS_COMMIT_ID=$GITHUB_SHA
export GIT_COMMIT=$GITHUB_SHA
export REPO_NAME=$(basename $GITHUB_REPOSITORY)
export USER=$(whoami)
export CC=${CC:-gcc}
export PATH=~/.local/bin:/usr/local/bin:$PATH

if [ "$JOB_BUILDTYPE" == "88140f0f85-2319b6d45f" ]; then

echo '==================================> INSTALL'

git clone --depth 1 https://github.com/boostorg/preprocessor.git ../preprocessor

echo '==================================> SCRIPT'

mkdir __build__ && cd __build__
cmake ../test/test_cmake
cmake --build .

elif [ "$JOB_BUILDTYPE" == "boost" ]; then

echo '==================================> INSTALL'

cd ..
BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
git submodule update --init tools/build
git submodule update --init libs/config
git submodule update --init tools/boostdep
git submodule update --init tools/boost_install
git submodule update --init libs/headers
cp -r $TRAVIS_BUILD_DIR/* libs/vmd
python tools/boostdep/depinst/depinst.py vmd
./bootstrap.sh
./b2 headers

echo '==================================> SCRIPT'

echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
./b2 libs/preprocessor/test//preprocessor_config toolset=$TOOLSET
./b2 libs/vmd/test toolset=$TOOLSET

fi
#
# osx:
# strategy:
# fail-fast: false
# matrix:
# include:
#
# Github Actions only supports certain Xcode versions
# Change (or delete) the Xcode version for this job.
#
# - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 Job 3"
# buildtype: "boost"
# packages: ""
# os: "macos-10.15"
# cxx: "clang++"
# sources: ""
# llvm_os: ""
# llvm_ver: ""
# xcode_version: "9.4"
# toolset: "clang"
# compiler: "clang++"
# cxxstd: "c++11"
#
#
# runs-on: ${{ matrix.os }}
#
# steps:
# - uses: actions/checkout@v2
#
# - name: Set DEVELOPER_DIR
# if: matrix.xcode_version != ''
# run: echo "DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode_version }}.app/Contents/Developer" >> $GITHUB_ENV
# - name: Test DEVELOPER_DIR
# run: echo $DEVELOPER_DIR
#
# - name: "osx"
# shell: bash
# env:
# CXX: ${{ matrix.cxx }}
# SOURCES: ${{ matrix.sources }}
# LLVM_OS: ${{ matrix.llvm_os }}
# LLVM_VER: ${{ matrix.llvm_ver }}
# PACKAGES: ${{ matrix.packages }}
# JOB_BUILDTYPE: ${{ matrix.buildtype }}
# TEST_CMAKE: ${{ matrix.test_cmake }}
# TOOLSET: ${{ matrix.toolset }}
# COMPILER: ${{ matrix.compiler }}
# CXXSTD: ${{ matrix.cxxstd }}
# TRAVIS_BRANCH: ${{ github.base_ref }}
# TRAVIS_OS_NAME: "osx"
# run: |
# echo '==================================> SETUP'
# set -e
# sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.bck
# echo '==================================> PACKAGES'
# echo '==================================> INSTALL AND COMPILE'
# set -e
# export TRAVIS_BUILD_DIR=$(pwd)
# export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')}
# export VCS_COMMIT_ID=$GITHUB_SHA
# export GIT_COMMIT=$GITHUB_SHA
# export REPO_NAME=$(basename $GITHUB_REPOSITORY)
# export USER=$(whoami)
# export CC=${CC:-gcc}
# export PATH=~/.local/bin:/usr/local/bin:$PATH
#
# if [ "$JOB_BUILDTYPE" == "boost" ]; then
#
# echo '==================================> INSTALL'
#
# cd ..
# git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
# cd boost-root
# git submodule update --init tools/build
# git submodule update --init libs/config
# git submodule update --init tools/boostdep
# git submodule update --init tools/boost_install
# git submodule update --init libs/headers
# cp -r $TRAVIS_BUILD_DIR/* libs/vmd
# python tools/boostdep/depinst/depinst.py vmd
# ./bootstrap.sh
# ./b2 headers
#
# echo '==================================> SCRIPT'
#
# echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
# ./b2 libs/preprocessor/test//preprocessor_config toolset=$TOOLSET
# ./b2 libs/vmd/test toolset=$TOOLSET
#
# fi