name: Fission CI on: push: branches: - master paths: - '**.go' - 'charts/**' - 'test/**' pull_request: branches: - master paths: - '.github/workflows/*' - '**.go' - 'charts/**' - 'test/**' workflow_dispatch: jobs: # Job to run change detection integration-test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: kindimage : [ 'kindest/node:v1.19.11','kindest/node:v1.20.7', 'kindest/node:v1.21.1' ] os: [ ubuntu-latest ] steps: - name: Checkout sources uses: actions/checkout@v2.3.4 - name: Checkout sources uses: actions/checkout@v2.3.4 with: repository: fission/examples path: examples - name: setup go uses: actions/setup-go@v2.1.3 with: go-version: "1.15.12" - name: Helm installation uses: Azure/setup-helm@v1 with: version: v3.3.4 - name: Kind Clutser uses: engineerd/setup-kind@v0.5.0 with: image: ${{ matrix.kindimage }} version: v0.11.0 - name: Configuring and testing the Installation run: | kubectl cluster-info --context kind-kind kubectl get nodes sudo apt-get install -y apache2-utils - name: Static code analysis run: | ./hack/verify-gofmt.sh ./hack/verify-govet.sh helm lint charts/fission-all/ charts/fission-core/ - name: Run unit tests run: ./hack/runtests.sh - name: Helm update run: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts - name: Install Skaffold run: | curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 sudo install skaffold /usr/local/bin/ skaffold version - name: Build and Install Fission run: | kubectl create ns fission kubectl create -k crds/v1 skaffold run -p kind-ci - name: Build and Install Fission CLI run: | go build -o fission cmd/fission-cli/main.go sudo mv fission /usr/local/bin fission version - name: Port-forward fission components run: | kubectl port-forward svc/router 8888:80 -nfission & kubectl port-forward svc/controller 8889:80 -nfission & kubectl port-forward svc/nats-streaming 8890:4222 -nfission & - name: Integration tests run: ./test/kind_CI.sh - name: Collect Fission Dump if: ${{ failure() }} run: | fission support dump - name: Archive fission dump if: ${{ failure() }} uses: actions/upload-artifact@v2 with: name: fission-support-dump path: fission-dump/*.zip retention-days: 5