Skip to content

Commit

Permalink
Merge pull request #179 from antmicro/setup-kokoro
Browse files Browse the repository at this point in the history
Setup kokoro
  • Loading branch information
alaindargelas authored Apr 16, 2020
2 parents 9252834 + a84d38a commit 686e1c6
Show file tree
Hide file tree
Showing 8 changed files with 256 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .github/kokoro/common.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash

set -e

# Check the SCRIPT_XXX values are set.
if [ -z "${SCRIPT_SRC}" ]; then
echo 'Parent script must do SCRIPT_SRC="$(realpath ${BASH_SOURCE[0]})"'
exit 1
fi
if [ -z "${SCRIPT_DIR}" ]; then
echo 'Parent script must do SCRIPT_DIR="$(dirname "${SCRIPT_SRC}")"'
exit 1
fi

# Check the KOKORO environment variables are correct
if [ -z "$KOKORO_DIR" ]; then
echo "$$KOKORO_DIR environment variable is missing ('$KOKORO_DIR')!"
exit 1
fi

# Close STDERR FD
exec 2<&-
# Redirect STDERR to STDOUT
exec 2>&1

# Get us into the github checkout source directory.
cd github/$KOKORO_DIR/

# Run the common setup steps
source ./.github/kokoro/steps/hostsetup.sh
source ./.github/kokoro/steps/hostinfo.sh
source ./.github/kokoro/steps/git.sh
18 changes: 18 additions & 0 deletions .github/kokoro/continuous-test.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Format: //devtools/kokoro/config/proto/build.proto
# Generated from .github/kokoro/kokoro-cfg.py
# To regenerate run:
# cd .github/kokoro/ && python3 kokoro-cfg.py
build_file: "UHDM-continuous-test/.github/kokoro/test.sh"
timeout_mins: 4320
env_vars {
key: "KOKORO_TYPE"
value: "continuous"
}
env_vars {
key: "KOKORO_DIR"
value: "UHDM-continuous-test"
}
env_vars {
key: "CI"
value: "test"
}
38 changes: 38 additions & 0 deletions .github/kokoro/kokoro-config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env python3
"""
Generates kokoro config files based on template.
"""

ci_config = """\
# Format: //devtools/kokoro/config/proto/build.proto
# Generated from .github/kokoro/kokoro-cfg.py
# To regenerate run:
# cd .github/kokoro/ && python3 kokoro-cfg.py
build_file: "UHDM-%(kokoro_type)s-%(ci)s/.github/kokoro/%(ci)s.sh"
timeout_mins: 4320
env_vars {
key: "KOKORO_TYPE"
value: "%(kokoro_type)s"
}
env_vars {
key: "KOKORO_DIR"
value: "UHDM-%(kokoro_type)s-%(ci)s"
}
env_vars {
key: "CI"
value: "%(ci)s"
}
"""

for ci in ['test']:
with open("continuous-%s.cfg" % ci, "w") as f:
f.write(ci_config % {
'ci': ci,
'kokoro_type': 'continuous',
})

with open("presubmit-%s.cfg" % ci, "w") as f:
f.write(ci_config % {
'ci': ci,
'kokoro_type': 'presubmit',
})
18 changes: 18 additions & 0 deletions .github/kokoro/presubmit-test.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Format: //devtools/kokoro/config/proto/build.proto
# Generated from .github/kokoro/kokoro-cfg.py
# To regenerate run:
# cd .github/kokoro/ && python3 kokoro-cfg.py
build_file: "UHDM-presubmit-test/.github/kokoro/test.sh"
timeout_mins: 4320
env_vars {
key: "KOKORO_TYPE"
value: "presubmit"
}
env_vars {
key: "KOKORO_DIR"
value: "UHDM-presubmit-test"
}
env_vars {
key: "CI"
value: "test"
}
29 changes: 29 additions & 0 deletions .github/kokoro/steps/git.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

set -e

echo
echo "========================================"
echo "Git log"
echo "----------------------------------------"
git log -n5 --stat
echo "----------------------------------------"

echo
echo "========================================"
echo "Git fetching tags"
echo "----------------------------------------"
# Don't fail if there are no tags
git fetch --tags || true
echo "----------------------------------------"

echo
echo "========================================"
echo "Git version info"
echo "----------------------------------------"
git log -n1
echo "----------------------------------------"
git describe --tags || true
echo "----------------------------------------"
git describe --tags --always || true
echo "----------------------------------------"
30 changes: 30 additions & 0 deletions .github/kokoro/steps/hostinfo.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

set -e

echo
echo "========================================"
echo "Host Environment"
echo "----------------------------------------"
export
echo "----------------------------------------"

echo
echo "========================================"
echo "Host CPU"
echo "----------------------------------------"
export CORES=$(nproc --all)
echo "Cores: $CORES"
echo
echo "Memory"
echo "----------------------------------------"
cat /proc/meminfo
echo "----------------------------------------"
export MEM_GB=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo)/(1024*1024)))
echo "Total Memory (GB): $MEM_GB"
export MEM_PER_RUN=16
export MEM_CORES=$(($MEM_GB/$MEM_PER_RUN))
echo "Simultaneous runs ($MEM_PER_RUN GB each): $MEM_CORES"
export MAX_CORES_NO_MIN=$(($MEM_CORES>$CORES?$CORES:$MEM_CORES))
export MAX_CORES=$(($MAX_CORES_NO_MIN<1?1:$MAX_CORES_NO_MIN))
echo "Max cores: $MAX_CORES"
62 changes: 62 additions & 0 deletions .github/kokoro/steps/hostsetup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

set -e

echo
echo "========================================"
echo "Removing older packages"
echo "----------------------------------------"
echo "----------------------------------------"

echo
echo "========================================"
echo "Host adding PPAs"
echo "----------------------------------------"
sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test'
echo "----------------------------------------"

echo
echo "========================================"
echo "Host updating packages"
echo "----------------------------------------"
sudo apt-get update
echo "----------------------------------------"

echo
echo "========================================"
echo "Host remove packages"
echo "----------------------------------------"
sudo apt-get remove -y \
python-pytest \


sudo apt-get autoremove -y

echo "----------------------------------------"
echo
echo "========================================"
echo "Host install packages"
echo "----------------------------------------"
sudo apt-get install -y \
bash \
build-essential \
cmake \
coreutils \
git \
make \
tclsh \

if [ -z "${BUILD_TOOL}" ]; then
export BUILD_TOOL=make
fi

export CC=gcc-7
export CXX=g++-7

echo "----------------------------------------"

echo
echo "========================================"
echo "Setting up environment env"
echo "----------------------------------------"
echo "----------------------------------------"
29 changes: 29 additions & 0 deletions .github/kokoro/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

set -e

cd github/$KOKORO_DIR/

source ./.github/kokoro/steps/hostsetup.sh
source ./.github/kokoro/steps/hostinfo.sh
source ./.github/kokoro/steps/git.sh

echo
echo "==========================================="
echo "Building UHDM"
echo "-------------------------------------------"
(
make
sudo make install
)
echo "-------------------------------------------"

echo
echo "==========================================="
echo "Executing UHDM tests"
echo "-------------------------------------------"
(
make test
make test_install
)
echo "-------------------------------------------"

0 comments on commit 686e1c6

Please sign in to comment.