Files
containerd/.github/workflows/ci.yml
Antonio Ojea 11a78d9d0f don't use socat for port forwarding
use goroutines to copy the data from the stream to the TCP
connection, and viceversa, removing the socat dependency.

Quoting Lantao Liu, the logic is as follow:

When one side (either pod side or user side) of portforward
is closed, we should stop port forwarding.

When one side is closed, the io.Copy use that side as source will close,
but the io.Copy use that side as dest won't.

Signed-off-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
2020-05-09 00:54:30 +02:00

179 lines
5.1 KiB
YAML

name: CI
on: [push, pull_request]
jobs:
#
# Project checks
#
project:
name: Project Checks (DCO, Headers, Vendor)
runs-on: ubuntu-18.04
timeout-minutes: 5
steps:
- name: Install Go
uses: actions/setup-go@v1
with:
go-version: '1.13.10'
- name: Set env
shell: bash
run: |
echo "::set-env name=GOPATH::${{ github.workspace }}"
echo "::add-path::${{ github.workspace }}/bin"
- name: Checkout cri repo
uses: actions/checkout@v2
with:
path: ${{github.workspace}}/src/github.com/containerd/cri
fetch-depth: 150
- name: Checkout project repo
uses: actions/checkout@v2
with:
repository: containerd/project
path: src/github.com/containerd/project
#
# Go get dependencies
#
- name: Install go get dependencies
env:
GO111MODULE: off
run: |
go get -u github.com/vbatts/git-validation
go get -u github.com/kunalkushwaha/ltag
go get -u github.com/LK4D4/vndr
#
# DCO / File headers / Vendor directory validation
#
- name: DCO
env:
GITHUB_COMMIT_URL: ${{ github.event.pull_request.commits_url }}
DCO_VERBOSITY: "-q"
DCO_RANGE: ""
working-directory: src/github.com/containerd/cri
run: |
set -x
if [ -z "${GITHUB_COMMIT_URL}" ]; then
DCO_RANGE=$(jq -r '.after + "..HEAD"' ${GITHUB_EVENT_PATH})
else
DCO_RANGE=$(curl ${GITHUB_COMMIT_URL} | jq -r '.[0].parents[0].sha +".."+ .[-1].sha')
fi
../project/script/validate/dco
# TODO: (mikebrow) removed test/ due to ltag not working with test/e3e symlink
# TODO: (mikebrow) removed hack/ due to prior boilerplate tests
- name: Headers
working-directory: src/github.com/containerd/cri
run: |
ltag -t "../project/script/validate/template" --excludes "vendor test hack" --check -v
- name: Vendor
working-directory: src/github.com/containerd/cri
run: ../project/script/validate/vendor
#
# build, unit, integration, and CRI tests
#
linux-build-and-test:
name: Build, Unit, Integration, and CRI (linux amd64)
runs-on: ubuntu-18.04
steps:
- name: Install Go
uses: actions/setup-go@v1
with:
go-version: '1.13.10'
- name: Set env
shell: bash
run: |
echo "::set-env name=GOPATH::${{ github.workspace }}"
echo "::add-path::${{ github.workspace }}/bin"
- name: Checkout cri repo
uses: actions/checkout@v2
with:
path: ${{github.workspace}}/src/github.com/containerd/cri
fetch-depth: 150
- name: Before install
run: |
sudo sysctl net.ipv6.conf.all.disable_ipv6=0
- name: Install dependencies
run: |
sudo apt-get install -y \
btrfs-tools \
libseccomp2 \
libseccomp-dev
make install.deps
working-directory: ${{github.workspace}}/src/github.com/containerd/cri
- name: Install containerd
run: |
make containerd
sudo PATH=$PATH GOPATH=$GOPATH make install-containerd
working-directory: ${{github.workspace}}/src/github.com/containerd/cri
- name: Unit Test
run: |
make test
working-directory: ${{github.workspace}}/src/github.com/containerd/cri
- name: Integration Test
run: |
make test-integration
working-directory: ${{github.workspace}}/src/github.com/containerd/cri
- name: Upload Integration Log File
uses: actions/upload-artifact@v1
with:
name: integration-test.log
path: /tmp/test-integration/containerd.log
- name: CRI Test
run: |
make test-cri
working-directory: ${{github.workspace}}/src/github.com/containerd/cri
- name: Upload CRI Test log file
uses: actions/upload-artifact@v1
with:
name: cri-test.log
path: /tmp/test-cri/containerd.log
test-windows:
name: Build and CRI Test (Windows amd64)
runs-on: windows-latest
steps:
- name: Set up Go 1.13.10
uses: actions/setup-go@v1
with:
go-version: 1.13.10
- name: Checkout cri repo
uses: actions/checkout@v2
with:
path: ${{github.workspace}}\\src\\github.com\\containerd\\cri
- name: Clone containerd repo
run: |
bash.exe -c "GO111MODULE=off go get github.com/containerd/containerd"
- name: Configure Windows environment variables
run: |
echo "::set-env name=GOPATH::$env:GITHUB_WORKSPACE"
- name: Build
run: |
bash.exe -c "pwd && ./test/windows/test.sh"
working-directory: ${{github.workspace}}\\src\\github.com\\containerd\\cri
- name: Upload containerd log file
uses: actions/upload-artifact@v1
with:
name: cadvisor.log
path: c:\\_artifacts\\containerd.log