Skip to content

nightly-Ubuntu-i386 #1151

nightly-Ubuntu-i386

nightly-Ubuntu-i386 #1151

name: nightly-Ubuntu-i386
on:
workflow_dispatch:
inputs:
run_tests:
type: boolean
description: Enable/Disable test stage
default: true
schedule:
- cron: '0 22 * * *'
jobs:
nightly-Ubuntu-i386:
strategy:
fail-fast: false
matrix:
boost:
- version: 1.71.0
- version: 1.76.0
build_type:
- type: Debug
warn_as_err: ON
- type: Release
warn_as_err: OFF
shared_libs:
- toggle: OFF
name: Static
- toggle: ON
name: Shared
with_openssl:
- toggle: OFF
name: 'noSSL'
- toggle: ON
name: 'SSL'
runs-on: ubuntu-latest
container:
image: i386/ubuntu
options: --privileged
name: >-
Ubuntu-i386
(${{ matrix.build_type.type }}, ${{ matrix.shared_libs.name }}, ${{matrix.boost.version}},${{ matrix.with_openssl.name }})
steps:
- uses: actions/checkout@v1
- name: Read Config
run: cat .github/config.env >> $GITHUB_ENV
# Install Java via `apt`, can't use the `setup-java` action on this image
# `setup-java` is written in TypeScript and requires a compatible Node installation
# Newest available version for this image is Node 8, which is too old for any version to run against
# https://github.com/actions/setup-node/issues/922
- name: Install Necessary Packages
run: |
apt-get update
apt-get install -y build-essential cmake curl git libssl-dev maven net-tools openjdk-${{ env.JAVA_VERSION }}-jre-headless gdb curl
- name: Make sure the target architecture is 32 bit
run: |
echo 'int main() { return sizeof(void*) != 4; }' > test.c
gcc test.c -oa
./a
rm a test.c
# `apt-get` brings in `3.6` which is too old to be compatible with Java 17
- name: Install Maven
run: |
install_dir="/opt/maven"
mkdir ${install_dir}
curl \
--fail \
--silent \
--show-error \
--location \
https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${{ env.MAVEN_VERSION }}/apa${{ env.MAVEN_VERSION }}n_version}-bin.tar.gz |
tar \
--extract \
--gzip \
--strip-components=1 \
--directory ${install_dir}
echo "${install_dir}/bin" >> $GITHUB_PATH
- name: Test Maven
run: |
mvn --version
- name: Download hazelcast-enterprise-tests.jar
run: |
curl -H "Authorization: token ${{ secrets.GH_TOKEN }}" https://raw.githubusercontent.com/hazelcast/private-test-artifacts/data/certs.jar > hazelcast-enterprise-${{ env.HAZELCAST_VERSION }}-tests.jar
- name: Install Boost
run: |
./scripts/install-boost.sh ${{matrix.boost.version}}
- name: Install Thrift
run: |
./scripts/install-thrift.sh 0.13.0
- name: Build & Install
env:
BUILD_DIR: build
INSTALL: ON
WARN_AS_ERR: ${{ matrix.build_type.warn_as_err }}
run: |
./scripts/build-unix.sh \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type.type }} \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/destination \
-DBUILD_SHARED_LIBS=${{ matrix.shared_libs.toggle }} \
-DWITH_OPENSSL=${{ matrix.with_openssl.toggle }} \
-DBUILD_TESTS=ON \
-DBUILD_EXAMPLES=OFF
- name: Test
if: ${{ inputs.run_tests || github.event_name == 'schedule' }}
env:
BUILD_DIR: build
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
HZ_TEST_AWS_INSTANCE_PRIVATE_IP: ${{ secrets.HZ_TEST_AWS_INSTANCE_PRIVATE_IP }}
run: |
ulimit -c unlimited
echo 'core' > /proc/sys/kernel/core_pattern
echo '1' > /proc/sys/kernel/core_uses_pid
./scripts/test-unix.sh
- name: Verify Installation
env:
BUILD_DIR: build-examples
run: |
./scripts/verify-installation-unix.sh \
-DCMAKE_PREFIX_PATH=${{ github.workspace }}/destination \
-DWITH_OPENSSL=${{ matrix.with_openssl.toggle }}