Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup kokoro #179

Merged
merged 2 commits into from
Apr 16, 2020
Merged
Show file tree
Hide file tree
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
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"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure this file path is wrong?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, I was looking at wrong commit in other repo.

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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This repo's config is simple enough you don't really need a Python script to generate it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

"""
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)))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably don't need this memory calculation stuff.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to know which compiler you want to use.

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 "-------------------------------------------"