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>
179 lines
5.1 KiB
YAML
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
|