mirror of https://github.com/containers/conmon.git
Add CRI-O integration test GitHub action
This adds a GitHub action for integration testing the latest CRI-O master against the conmon change to verify its impact. Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
This commit is contained in:
parent
911c786975
commit
dd99302e13
|
|
@ -0,0 +1,33 @@
|
||||||
|
name: integration
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- v*
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- ghactions # TODO: remove when it works
|
||||||
|
pull_request:
|
||||||
|
jobs:
|
||||||
|
cri-o:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '1.16'
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/go/pkg/mod
|
||||||
|
~/.cache/go-build
|
||||||
|
key: go-build-${{ hashFiles('**/go.sum') }}
|
||||||
|
restore-keys: go-integration-
|
||||||
|
- run: hack/github-actions-setup
|
||||||
|
- run: sudo make install
|
||||||
|
- name: Run CRI-O integration tests
|
||||||
|
run: |
|
||||||
|
cd cri-o
|
||||||
|
make all test-binaries
|
||||||
|
sudo -E test/test_runner.sh
|
||||||
|
env:
|
||||||
|
JOBS: '2'
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
declare -A VERSIONS=(
|
||||||
|
["cni-plugins"]=v0.8.7
|
||||||
|
["runc"]=v1.0.0-rc92
|
||||||
|
["bats"]=v1.2.1
|
||||||
|
)
|
||||||
|
|
||||||
|
main() {
|
||||||
|
set -x
|
||||||
|
prepare_system
|
||||||
|
|
||||||
|
install_packages
|
||||||
|
install_bats
|
||||||
|
install_critools
|
||||||
|
install_runc
|
||||||
|
install_cni_plugins
|
||||||
|
install_testdeps
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_system() {
|
||||||
|
sudo systemctl stop docker
|
||||||
|
sudo ufw disable
|
||||||
|
|
||||||
|
# enable necessary kernel modules
|
||||||
|
sudo ip6tables --list >/dev/null
|
||||||
|
|
||||||
|
# enable necessary sysctls
|
||||||
|
sudo sysctl -w net.ipv4.conf.all.route_localnet=1
|
||||||
|
sudo sysctl -w net.ipv4.ip_forward=1
|
||||||
|
# needed for crictl test
|
||||||
|
sudo sysctl -w net.bridge.bridge-nf-call-iptables=1
|
||||||
|
sudo iptables -t nat -I POSTROUTING -s 127.0.0.0/8 ! -d 127.0.0.0/8 -j MASQUERADE
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packages() {
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y \
|
||||||
|
conntrack \
|
||||||
|
libaio-dev \
|
||||||
|
libapparmor-dev \
|
||||||
|
libcap-dev \
|
||||||
|
libdevmapper-dev \
|
||||||
|
libfuse-dev \
|
||||||
|
libgpgme11-dev \
|
||||||
|
libnet1-dev \
|
||||||
|
libnl-3-dev \
|
||||||
|
libprotobuf-c-dev \
|
||||||
|
libprotobuf-dev \
|
||||||
|
libseccomp-dev \
|
||||||
|
libsystemd-dev \
|
||||||
|
libudev-dev \
|
||||||
|
socat \
|
||||||
|
uuid-dev
|
||||||
|
}
|
||||||
|
|
||||||
|
install_bats() {
|
||||||
|
git clone https://github.com/bats-core/bats-core
|
||||||
|
pushd bats-core
|
||||||
|
git checkout "${VERSIONS["bats"]}"
|
||||||
|
sudo ./install.sh /usr/local
|
||||||
|
popd
|
||||||
|
rm -rf bats-core
|
||||||
|
mkdir -p ~/.parallel
|
||||||
|
touch ~/.parallel/will-cite
|
||||||
|
}
|
||||||
|
|
||||||
|
install_critools() {
|
||||||
|
URL=https://github.com/kubernetes-sigs/cri-tools
|
||||||
|
|
||||||
|
git clone $URL
|
||||||
|
pushd cri-tools
|
||||||
|
sudo -E PATH="$PATH" make BINDIR=/usr/bin install
|
||||||
|
popd
|
||||||
|
sudo rm -rf cri-tools
|
||||||
|
sudo critest --version
|
||||||
|
sudo crictl --version
|
||||||
|
}
|
||||||
|
|
||||||
|
install_cni_plugins() {
|
||||||
|
URL=https://github.com/containernetworking/plugins/releases/download
|
||||||
|
TARBALL=cni-plugins-linux-amd64-${VERSIONS["cni-plugins"]}.tgz
|
||||||
|
CNI_DIR=/opt/cni/bin
|
||||||
|
sudo mkdir -p "$CNI_DIR"
|
||||||
|
wget -O "$TARBALL" $URL/"${VERSIONS["cni-plugins"]}"/"$TARBALL"
|
||||||
|
sudo tar xf "$TARBALL" -C "$CNI_DIR"
|
||||||
|
rm "$TARBALL"
|
||||||
|
ls -lah "$CNI_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_runc() {
|
||||||
|
URL=https://github.com/opencontainers/runc/releases/download/"${VERSIONS["runc"]}"
|
||||||
|
BINARY=/usr/sbin/runc
|
||||||
|
sudo wget -O "$BINARY" "$URL"/runc.amd64
|
||||||
|
sudo chmod +x "$BINARY"
|
||||||
|
|
||||||
|
# Verify the SHA256
|
||||||
|
SUMFILE=runc.sha256sum
|
||||||
|
wget "$URL"/$SUMFILE
|
||||||
|
grep -qw "$(sha256sum "$BINARY" | awk '{ print $1 }')" $SUMFILE
|
||||||
|
rm $SUMFILE
|
||||||
|
|
||||||
|
runc --version
|
||||||
|
}
|
||||||
|
|
||||||
|
install_testdeps() {
|
||||||
|
URL=https://github.com/cri-o/cri-o
|
||||||
|
git clone $URL
|
||||||
|
pushd cri-o
|
||||||
|
make "$(pwd)"/build/bin/ginkgo
|
||||||
|
sudo cp build/bin/ginkgo /usr/bin
|
||||||
|
ginkgo version
|
||||||
|
|
||||||
|
sudo mkdir -p /etc/containers/registries.d
|
||||||
|
sudo cp test/policy.json /etc/containers
|
||||||
|
sudo cp test/redhat_sigstore.yaml /etc/containers/registries.d/registry.access.redhat.com.yaml
|
||||||
|
sudo cp test/registries.conf /etc/containers/registries.conf
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
Loading…
Reference in New Issue