Merge branch 'master' into terraform #127
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
push: | |
branches: | |
- "*" # run for branches | |
tags: | |
- "*" # run for tags | |
jobs: | |
# | |
# | |
#check complete demo is in sync with individual manifest, it should block fom merge. Should this be a diferent file? | |
complete-demo-sync-check: | |
runs-on: ubuntu-latest | |
env: | |
COMPLETE_DEMO_ARGS: --rm -v ${{ github.workspace }}:/workdir | |
COMPLETE_DEMO_DIR: 'deploy/kubernetes/' | |
COMPLETE_DEMO_IMAGE: 'manifests-image' | |
steps: | |
- uses: actions/checkout@v2 | |
# | |
# | |
# Build image | |
- name: Build image | |
env: | |
DOCKER_BUILDKIT: 1 | |
run: docker build -t $COMPLETE_DEMO_IMAGE $COMPLETE_DEMO_DIR | |
# | |
# | |
# Check that manifest and complete-demo.yaml ahve the same content | |
- name: check comeplte-demo.yaml content sync | |
run: docker run $COMPLETE_DEMO_ARGS $COMPLETE_DEMO_IMAGE make -C $COMPLETE_DEMO_DIR check-complete-demo | |
# | |
# | |
#check that we can deploy complete-demo | |
#NOTE: what about docker compose? maybe doesn't make sense if we use the KIND action | |
#NOTE: later we can test that the documentation is tested, as in previous cronjobs in travis | |
deployments-tests: | |
needs: complete-demo-sync-check | |
runs-on: ubuntu-latest | |
env: | |
kind-version: 'v0.10.0' | |
kind-image: 'kindest/node:v1.20.0' | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Start KinD | |
uses: engineerd/[email protected] | |
with: | |
version: ${{ env.kind-version }} | |
image: ${{ env.kind-image }} | |
- name: Wait cluster to start | |
run: | | |
until [ "$(kubectl get pods -A --no-headers | grep -cEv '([0-9]+)/\1')" -eq 0 ]; do | |
sleep 5s | |
done | |
kubectl get pod -A | |
- name: Run and test Complete demo | |
run: | | |
kubectl apply -f deploy/kubernetes/complete-demo.yaml | |
until [ "$(kubectl get pods -n sock-shop --no-headers | grep -cEv '([0-9]+)/\1')" -eq 0 ]; do | |
sleep 5s | |
kubectl get pods -n sock-shop | |
kubectl describe node | grep "Allocated resources" -A 10 | |
done | |
kubectl get pod -A | |
# | |
# | |
#build openapi and healtcheck images | |
build-test-images: | |
if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master' | |
runs-on: ubuntu-latest | |
env: | |
GROUP: weaveworksdemos | |
strategy: | |
matrix: | |
repo: ["openapi", "healthcheck"] | |
steps: | |
- uses: actions/checkout@v2 | |
# | |
# | |
# Push to dockerhub | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USER }} | |
password: ${{ secrets.DOCKER_PASS }} | |
- name: Build and push | |
uses: docker/build-push-action@v2 | |
with: | |
context: ${{ matrix.repo }} | |
push: true | |
tags: ${{ env.GROUP }}/${{ matrix.repo }}:${{ github.sha }} |