Setup integration testing

Signed-off-by: Morlay <morlay.null@gmail.com>
pull/691/head
Morlay 4 years ago
parent 7d312eaa0a
commit 6c704ac384

@ -0,0 +1,60 @@
name: testing-builder
on: push
jobs:
builder:
runs-on: ubuntu-latest
strategy:
matrix:
driver:
- docker-container
- kubernetes
mode:
- single-node
- multiple-nodes
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup golang
uses: actions/setup-go@v2
with:
go-version: '1.16.x'
- name: Build buildx
run: go build -o ~/.docker/cli-plugins/docker-buildx ./cmd/buildx
- name: Setup env
run: |-
case ${{ matrix.driver }} in
kubernetes)
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s -;
;;
docker-container)
docker run --rm --privileged tonistiigi/binfmt:latest --install all;
;;
esac
- name: Setup builder
run: sh ./testings/builder/${{ matrix.driver }}/${{ matrix.mode }}.sh
env:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
- name: Build single platform to local registry
uses: docker/build-push-action@v2
with:
context: ./testings/builder
push: false
platforms: linux/amd64
tags: localhost/name/app:latest-amd64
- name: Build multiple platforms to local registry
uses: docker/build-push-action@v2
with:
context: ./testings/builder
push: false
platforms: linux/amd64,linux/arm64
tags: localhost/name/app:latest

@ -0,0 +1,6 @@
FROM busybox
ARG BUILDPLATFORM
ARG TARGETPLATFORM
RUN echo "build ${TARGETPLATFORM} on ${BUILDPLATFORM} host"

@ -0,0 +1,19 @@
#!/bin/bash
BUILDER_NAME=${BUILDER_NAME:-builder}
BUILDER_DRIVER=${BUILDER_DRIVER:-docker-container}
docker buildx create \
--name="${BUILDER_NAME}" \
--node="${BUILDER_NAME}-amd64" \
--driver="${BUILDER_DRIVER}" \
--platform=linux/amd64
docker buildx create --append \
--name="${BUILDER_NAME}" \
--node="${BUILDER_NAME}-arm64" \
--driver="${BUILDER_DRIVER}" \
--platform=linux/arm64
docker buildx inspect "${BUILDER_NAME}" --bootstrap
docker buildx use "${BUILDER_NAME}"

@ -0,0 +1,12 @@
#!/bin/bash
BUILDER_NAME=${BUILDER_NAME:-builder}
BUILDER_DRIVER=${BUILDER_DRIVER:-docker-container}
docker buildx create \
--name="${BUILDER_NAME}" \
--driver="${BUILDER_DRIVER}" \
--platform=linux/amd64,linux/arm64
docker buildx inspect "${BUILDER_NAME}" --bootstrap
docker buildx use "${BUILDER_NAME}"

@ -0,0 +1,8 @@
#!/bin/bash
set -eux;
export BUILDER_DRIVER=docker-container
sh ./testings/builder/create_multiple_nodes_builder.sh

@ -0,0 +1,8 @@
#!/bin/bash
set -eux;
export BUILDER_DRIVER=docker-container
sh ./testings/builder/create_single_node_builder.sh

@ -0,0 +1,9 @@
#!/bin/bash
set -eux;
export KUBECONFIG=${KUBECONFIG:-~/.kube/config}
export BUILDER_DRIVER=kubernetes
sh ./testings/builder/create_multiple_nodes_builder.sh

@ -0,0 +1,9 @@
#!/bin/bash
set -eux;
export BUILDER_DRIVER=kubernetes
export KUBECONFIG=${KUBECONFIG:-~/.kube/config}
sh ./testings/builder/create_single_node_builder.sh
Loading…
Cancel
Save