Skip to content

Setup Github Actions for testing release binary against linux and darwin #4300

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

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
96 changes: 96 additions & 0 deletions .github/workflows/integration-darwin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Nightly Darwin integration tests

on:
schedule:
- cron: "0 10 * * *"

jobs:

build:
name: Release binary integration tests
runs-on: macos-latest
steps:

- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.14
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Install Kustomize
run: |
wget -O kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_darwin_amd64.tar.gz
sudo tar -xvf kustomize.tar.gz -C /usr/local/bin/

- name: Install Ko
run: |
wget -O ko.tar.gz https://github.com/google/ko/releases/download/v0.4.0/ko_0.4.0_Darwin_x86_64.tar.gz
sudo tar -xvf ko.tar.gz -C /usr/local/bin/

- name: Install Kompose
run: |
wget -O kompose https://github.com/kubernetes/kompose/releases/download/v1.21.0/kompose-darwin-amd64 && chmod +x kompose
sudo mv kompose /usr/local/bin/

- name: Install Docker
run: |
brew install docker docker-machine
mkdir -p ${HOME}/.docker/machine/cache
curl -Lo ${HOME}/.docker/machine/cache/boot2docker.iso https://github.com/boot2docker/boot2docker/releases/download/v18.09.1-rc1/boot2docker.iso
docker-machine create --driver virtualbox --virtualbox-boot2docker-url ${HOME}/.docker/machine/cache/boot2docker.iso default
docker-machine env default
eval $(docker-machine env default)
echo ::set-env name=DOCKER_TLS_VERIFY::${DOCKER_TLS_VERIFY}
echo ::set-env name=DOCKER_HOST::${DOCKER_HOST}
echo ::set-env name=DOCKER_CERT_PATH::${DOCKER_CERT_PATH}
echo ::set-env name=DOCKER_MACHINE_NAME::${DOCKER_MACHINE_NAME}

- name: Wait Docker Daemon startup
run: |
counter=0
until docker version --format {{.Server.Version}} && echo "Docker daemon running"
do
echo "Retry docker daemon status check..."
sleep 20
[[ counter -eq 30 ]] && echo "Docker daemon start failed" && exit 1
((counter++))
done
docker run hello-world

- name: Install GCloud and configure
run: |
wget -O gcloud.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-276.0.0-darwin-x86_64.tar.gz
tar -xvf gcloud.tar.gz -C ${HOME}
CLOUDSDK_PYTHON="python2.7" ${HOME}/google-cloud-sdk/install.sh --usage-reporting=false --bash-completion=false --disable-installation-options
echo ::add-path::${HOME}/google-cloud-sdk/bin

- name: Install kubectl
run: |
gcloud components install kubectl

- name: Install Container Structure Test
run: |
wget -O container-structure-test https://storage.googleapis.com/container-structure-test/v1.8.0/container-structure-test-darwin-amd64 && chmod +x container-structure-test
sudo mv container-structure-test /usr/local/bin/

- name: Setup other files and permissions
run: mkdir -p ${HOME}/.m2/ && cp ./hack/maven/settings.xml ${HOME}/.m2/settings.xml

- name: Install Minikube and start cluster
run: |
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube /usr/local/bin/minikube
minikube start --profile=minikube --driver=virtualbox

- name: Install Skaffold release binary
run: |
curl -Lo skaffold https://storage.googleapis.com/skaffold/builds/latest/skaffold-darwin-amd64
sudo install skaffold /usr/local/bin/skaffold

- name: Run integration tests
env:
TOKEN: ${{ secrets.TOKEN }}
run: make integration-tests
76 changes: 76 additions & 0 deletions .github/workflows/integration-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Nightly Linux integration tests

on:
schedule:
- cron: "0 10 * * *"

jobs:

build:
name: Release binary integration tests
runs-on: ubuntu-latest
steps:

- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.14
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Install Kustomize
run: |
wget -O kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_linux_amd64.tar.gz
sudo tar -xvf kustomize.tar.gz -C /usr/local/bin/

- name: Install Ko
run: |
wget -O ko.tar.gz https://github.com/google/ko/releases/download/v0.4.0/ko_0.4.0_Linux_x86_64.tar.gz
sudo tar -xvf ko.tar.gz -C /usr/local/bin/

- name: Install Kompose
run: |
wget -O kompose https://github.com/kubernetes/kompose/releases/download/v1.21.0/kompose-linux-amd64 && chmod +x kompose
sudo mv kompose /usr/local/bin/

- name: Install GCloud
run: |
wget -O gcloud.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-276.0.0-linux-x86_64.tar.gz
sudo tar -xvf gcloud.tar.gz -C /
sudo CLOUDSDK_PYTHON="python2.7" /google-cloud-sdk/install.sh --usage-reporting=false --bash-completion=false --disable-installation-options
echo "::add-path::/google-cloud-sdk/bin"

- name: Configure GCloud with Docker
run: sudo gcloud auth configure-docker

- name: Install Container Structure Test
run: |
wget -O container-structure-test https://storage.googleapis.com/container-structure-test/v1.8.0/container-structure-test-linux-amd64 && chmod +x container-structure-test
sudo mv container-structure-test /usr/local/bin/

- name: Setup other files and permissions
run: |
sudo chown $(whoami) /home/$(whoami)/.config/gcloud -R
sudo chmod g+rw /home/$(whoami)/.config/gcloud -R
sudo chown $(whoami):docker /home/$(whoami)/.docker -R
sudo chmod g+rw /home/$(whoami)/.docker -R
echo '{}' > /home/$(whoami)/.docker/config.json
mkdir -p /home/$(whoami)/.m2/ && cp ./hack/maven/settings.xml /home/$(whoami)/.m2/settings.xml

- name: Install Minikube and start cluster
run: |
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube /usr/local/bin/minikube
minikube start --profile=minikube --driver=docker

- name: Install Skaffold release binary
run: |
curl -Lo skaffold https://storage.googleapis.com/skaffold/builds/latest/skaffold-linux-amd64
sudo install skaffold /usr/local/bin/skaffold

- name: Run integration tests
env:
TOKEN: ${{ secrets.TOKEN }}
run: sudo make integration-tests