diff --git a/.disabled_workflows/workflows/docker.yml b/.disabled_workflows/workflows/docker.yml deleted file mode 100644 index cbd1f090..00000000 --- a/.disabled_workflows/workflows/docker.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Test Docker Hub Images - -on: [push] - -jobs: - centos7: - runs-on: ubuntu-18.04 - container: docker://nasatrick/trick_centos7:latest - steps: - - name: run tests - run: | - cd /trick* - make test - - centos8: - runs-on: ubuntu-18.04 - container: docker://nasatrick/trick_centos8:latest - steps: - - name: run tests - run: | - cd /trick* - make test - - ubuntu1804: - runs-on: ubuntu-18.04 - container: docker://nasatrick/trick_ubuntu1804:latest - steps: - - name: run tests - run: | - cd /trick* - make test diff --git a/.disabled_workflows/workflows/test.yml b/.disabled_workflows/workflows/test.yml deleted file mode 100644 index a3db11c7..00000000 --- a/.disabled_workflows/workflows/test.yml +++ /dev/null @@ -1,171 +0,0 @@ -name: Trick CI - -on: [push] - -jobs: - ubuntu-1604: - runs-on: ubuntu-18.04 - container: docker://ubuntu:16.04 - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: update apt - run: apt-get update - - - name: Install dependencies - run: > - apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev - libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig - zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev - libgtest-dev cmake - - - name: Build gtest - run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/ - - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - name: Run tests - run: make test - - ubuntu-1804: - runs-on: ubuntu-18.04 - container: docker://ubuntu:18.04 - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: update apt - run: apt-get update - - - name: Install dependencies - run: > - apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev - libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig - zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev - libgtest-dev cmake - - - name: Build gtest - run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/ - - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - name: Run tests - run: make test - - ubuntu-1904: - runs-on: ubuntu-18.04 - container: docker://ubuntu:19.04 - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: update apt - run: apt-get update - - - name: Install dependencies - run: > - apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev - libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig - zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev - libgtest-dev cmake - - - name: Build gtest - run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/ - - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - name: Run tests - run: make test - - macOS: - runs-on: macOS-latest - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: Install gtest - run: | - wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz - tar xzvf release-1.8.0.tar.gz - cd googletest-release-1.8.0/googletest - cmake . - make - make install - - - name: Install dependencies - run: | - # sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg -target / - brew cask install xquartz - brew install llvm swig udunits openmotif - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - - name: Run tests - run: | - export MAKEFLAGS=-j4 - make test - - centos-7: - runs-on: ubuntu-18.04 - container: docker://centos:7 - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: Install the epel repository and update yum - run: yum -y install epel-release && yum -y update - - - name: Install dependencies - run: > - yum install -y git bison flex gcc gcc-c++ make which clang clang-devel - llvm llvm-devel llvm-static libxml2-devel libX11-devel libXt-devel - ncurses-devel openmotif openmotif-devel perl perl-Digest-MD5 - python-devel swig zlib-devel udunits2 udunits2-devel - java-1.8.0-openjdk-devel gtest-devel - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - - name: Run tests - run: make test - - fedora-30: - runs-on: ubuntu-18.04 - container: docker://fedora:30 - steps: - - name: Checkout repository - uses: actions/checkout@master - - - name: Install dependencies - run: > - dnf install -y git bison flex gcc gcc-c++ libxml2-devel make openmotif - openmotif-devel python-devel perl swig zlib-devel llvm llvm-devel llvm-static - clang clang-devel perl-Text-Balanced perl-Digest-MD5 udunits2 udunits2-devel - java-1.8.0-openjdk-devel ncurses-devel which - - - name: Install gtest - run: dnf install -y gtest-devel - - - name: Build Trick - run: | - export MAKEFLAGS=-j4 - ./configure - make - - - name: Run tests - run: make test diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..bfb20809 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,19 @@ +name: Test Docker Hub Images + +on: + schedule: + - cron: '0 0 * * 0' + +jobs: + latest: + runs-on: ubuntu-18.04 + container: docker://nasatrick/${{matrix.container}}:latest + strategy: + matrix: + container: [trick_centos7, trick_centos8, trick_ubuntu1804] + steps: + - name: run tests + run: | + cd /trick* + make test + diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml new file mode 100644 index 00000000..dcfd22d4 --- /dev/null +++ b/.github/workflows/test_linux.yml @@ -0,0 +1,194 @@ +name: Trick CI - Linux + +on: + push: + paths-ignore: + - 'docs/**' + +jobs: + build: + strategy: + fail-fast: false + matrix: + cfg: +#-------- Operating Systems ---------------- + - { os: ubuntu, tag: 18.04, arch: debian } # EOL April 2023 + - { os: ubuntu, tag: 20.04, arch: debian } # EOL April 2025 + - { os: debian, tag: 10, arch: debian } # EOL 2024 + - { os: centos, tag: 7, arch: rhel } # EOL June 2024 + - { os: centos, tag: latest, arch: rhel } # 8 as of April 2020 + - { os: fedora, tag: latest, arch: rhel } # 31 as of April 2020 + # - { os: fedora, tag: 33, arch: rhel } # feeling confident? + # - { os: fedora, tag: rawhide, arch: rhel } # for thrill-seekers only + +#-------- Defaults -------------------------- + include: + - cfg: {} + deps: >- + bison + clang + flex + git + llvm + make + maven + swig + cmake + install_gtest: echo gtest already installed + conf_pkg: echo package manager already configured + install_cmd: install -y +#-------- Debian-based Dependencies ---------------- + - cfg: { arch: debian } + pkg_mgr: apt-get + conf_pkg: apt-get update + arch_deps: >- + curl + g++ + libx11-dev + libxml2-dev + libxt-dev + libmotif-common + libmotif-dev + python2.7-dev + zlib1g-dev + llvm-dev + libclang-dev + libudunits2-dev + libgtest-dev + install_gtest: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/ +#-------- RHEL Dependencies ---------------- + - cfg: { arch: rhel } + arch_deps: >- + clang-devel + gcc + gcc-c++ + java-11-openjdk-devel + libxml2-devel + llvm-devel + llvm-static + ncurses-devel + openmotif + openmotif-devel + perl + perl-Digest-MD5 + udunits2 + udunits2-devel + which + zlib-devel + gtest-devel +#-------- Ubuntu Only Dependencies ---------------- + - cfg: { os: ubuntu } + os_deps: >- + openjdk-11-jdk +#-------- Debian OS Only Dependencies ---------------- + - cfg: { os: debian } + os_deps: >- + openjdk-11-jdk +#-------- CentOS Only Dependencies ---------------- + - cfg: { os: centos } + pkg_mgr: yum + conf_pkg: yum -y install epel-release && yum -y update + os_deps: >- + libX11-devel + libXt-devel +#-------- Fedora Only Dependencies ---------------- + - cfg: { os: fedora } + pkg_mgr: dnf + os_deps: >- + perl-Text-Balanced + python-devel + diffutils +#-------- Version Specific Dependencies ---------------- + - cfg: { os: ubuntu, tag: 20.04 } + conf_pkg: DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y tzdata + install_gtest: cd /usr/src/gtest && cmake . && make && cp lib/libgtest* /usr/lib/ + tag_deps: >- + python3.8-dev + - cfg: { os: centos, tag: 7 } + tag_deps: >- + python-devel + - cfg: { os: centos, tag: latest } + pkg_mgr: dnf + conf_pkg: > + dnf -y install epel-release && + dnf -y update && + dnf install -y 'dnf-command(config-manager)' && + dnf config-manager --enable PowerTools + tag_deps: >- + python3-devel diffutils +#-------- Job definition ---------------- + runs-on: ubuntu-18.04 + container: docker://${{matrix.cfg.os}}:${{matrix.cfg.tag}} + steps: + - name: Update Package Manager + run: ${{matrix.conf_pkg}} + - name: Install Dependencies + run: | + ${{matrix.pkg_mgr}} ${{matrix.install_cmd}} ${{matrix.deps}} ${{matrix.arch_deps}} ${{matrix.os_deps}} ${{matrix.tag_deps}} + - name: Install GTest + run: ${{matrix.install_gtest}} + - name: Checkout repository + uses: actions/checkout@master + - name: Build trick + run: | + export MAKEFLAGS=-j`nproc` + ./configure + make + - name: Test + run: make test + + trick_32bit: + runs-on: ubuntu-18.04 + container: docker://centos:7 + steps: + - name: Checkout repository + uses: actions/checkout@master + - name: Add yum repo + run: yum -y install epel-release.noarch + - name: Install dependency group + run: yum -y groupinstall "Development tools" + - name: Install other dependencies + run: > + yum install -y llvm llvm-devel llvm-static clang clang-devel + bison flex gcc gcc-c++ libxml2-devel make cmake wget + ncurses-devel openmotif openmotif-devel python-devel perl + perl-Digest-MD5 swig zlib-devel glibc.x86_64 libxml2-devel.i686 + ncurses-devel.i686 zlib-devel.i686 python-libs.i686 + expat-2.1.0-10.el7_3.i686 glibc-devel-2.17-196.el7.i686 + glibc.i686 glibc-devel.i686 udunits2 udunits2-devel gtest-devel.i686 + java-11-openjdk java-11-openjdk-devel expat-devel.i686 + which gcc-gfortran git wget gsl-devel gtest-devel gsl-devel.i686 + maven udunits2 udunits2-devel + - name: Symlink python + run: | + cd /usr/lib + ln -s ./libpython2.7.so.1.0 libpython2.7.so + - name: Install Udunits (32 bit) + run: | + curl --retry 4 -O https://www.unidata.ucar.edu/downloads/udunits/udunits-2.2.26.tar.gz + tar xfvz udunits-2.2.26.tar.gz + rm udunits-2.2.26.tar.gz + cd udunits-2.2.26 + export CFLAGS="-m32" + ./configure --prefix=/usr + make + make install + - name: Install GTest (32 bit) + run: | + wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz + tar xfvz release-1.8.0.tar.gz + cd googletest-release-1.8.0/googletest + export CFLAGS="-m32" + export CXXFLAGS="-m32" + cmake . + make + make install + - name: Build Trick + run: | + yum -y update && yum clean all + export MAKEFLAGS=-j`nproc` + ./configure --without-hdf5 --enable-32bit + make + - name: Run tests + run: make test + diff --git a/.github/workflows/test_macos.yml b/.github/workflows/test_macos.yml new file mode 100644 index 00000000..59022735 --- /dev/null +++ b/.github/workflows/test_macos.yml @@ -0,0 +1,36 @@ +name: Trick CI - macOS + +on: + push: + paths-ignore: + - 'docs/**' + +jobs: + macOS: + runs-on: macos-latest + steps: + - name: Checkout repository + uses: actions/checkout@master + + - name: Install gtest + run: | + wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz + tar xzvf release-1.8.0.tar.gz + cd googletest-release-1.8.0/googletest + cmake . + make + make install + - name: Install dependencies + run: | + # sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg -target / + brew cask install xquartz + brew install llvm swig udunits openmotif maven + - name: Build Trick + run: | + export MAKEFLAGS=-j4 + ./configure + make + - name: Run tests + run: | + export MAKEFLAGS=-j4 + make test