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: kubernetes-integration-test | |
on: [push] | |
jobs: | |
kubernetes-integration-test: | |
env: | |
TEST_PLATFORM: kubernetes | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Checkout code | |
uses: actions/checkout@v3 | |
- | |
name: Go build | |
run: CGO_ENABLED=0 GOOS=linux go build -o grid-intensity . | |
- | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- | |
name: Docker build | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
load: true | |
tags: thegreenwebfoundation/grid-intensity:integration-test | |
- | |
name: Create kubernetes Kind Cluster | |
uses: helm/kind-action@v1.5.0 | |
- | |
name: Load image into Kind cluster | |
run: kind load docker-image --name chart-testing thegreenwebfoundation/grid-intensity:integration-test | |
- | |
name: Set up Helm | |
uses: azure/setup-helm@v3 | |
- | |
name: Helm install | |
run: helm install grid-intensity-exporter helm/grid-intensity-exporter --set image.tag=integration-test | |
- | |
name: Set up Kubectl | |
uses: azure/setup-kubectl@v3 | |
- | |
name: Wait for ready pod | |
run: kubectl wait --for=condition=ready -l app.kubernetes.io/name=grid-intensity-exporter pod | |
- | |
name: Create port forward to metrics port | |
run: kubectl port-forward deployment/grid-intensity-exporter 8000:8000 & | |
- | |
name: Run integration test | |
run: go test -v -tags=dockerrequired ./integration/test/exporter |