diff --git a/.github/actions/install-konveyor/action.yml b/.github/actions/install-konveyor/action.yml index da37a74..d3148d2 100644 --- a/.github/actions/install-konveyor/action.yml +++ b/.github/actions/install-konveyor/action.yml @@ -43,3 +43,9 @@ runs: run: make install-konveyor working-directory: ${{ github.action_path }}/../../.. shell: bash + - name: Upload logs on fail + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: debug-output + path: /tmp/konveyor-debug diff --git a/.github/actions/make-bundle/action.yml b/.github/actions/make-bundle/action.yml index 44f9a34..7cb1107 100644 --- a/.github/actions/make-bundle/action.yml +++ b/.github/actions/make-bundle/action.yml @@ -57,6 +57,11 @@ inputs: description: "comma separated channel(s) this operator should be available on" required: false default: "" + push_bundle: + description: "" + required: false + default: "false" + runs: using: "composite" steps: @@ -85,3 +90,12 @@ runs: make bundle-build working-directory: ${{ github.action_path }}/../../.. shell: bash + + - name: Push bundle + if: ${{ inputs.push_bundle == 'true' }} + env: + BUNDLE_IMG: ${{ inputs.operator_bundle }} + run: | + make bundle-push + working-directory: ${{ github.action_path }}/../../.. + shell: bash diff --git a/Makefile b/Makefile index 40bc5ca..2f3ed8d 100644 --- a/Makefile +++ b/Makefile @@ -263,15 +263,15 @@ catalog-push: ## Push a catalog image. .PHONY: start-minikube start-minikube: - $(shell pwd)/hack/start-minikube.sh + bash hack/start-minikube.sh .PHONY: install-tackle install-tackle: - $(shell pwd)/hack/install-tackle.sh + bash hack/install-tackle.sh .PHONY: install-konveyor install-konveyor: - $(shell pwd)/hack/install-konveyor.sh + bash hack/install-konveyor.sh YQ = $(shell pwd)/bin/yq .PHONY: yq diff --git a/hack/install-konveyor.sh b/hack/install-konveyor.sh index 1f4bf1a..d5b6b5e 100755 --- a/hack/install-konveyor.sh +++ b/hack/install-konveyor.sh @@ -20,19 +20,41 @@ if ! command -v operator-sdk >/dev/null 2>&1; then fi debug() { + set +e echo "Install Konveyor FAILED!!!" echo "What follows is some info that may be useful in debugging the failure" - kubectl get namespace "${NAMESPACE}" -o yaml || true - kubectl get --namespace "${NAMESPACE}" all || true - kubectl get --namespace "${NAMESPACE}" -o yaml \ - subscriptions.operators.coreos.com,catalogsources.operators.coreos.com,installplans.operators.coreos.com,clusterserviceversions.operators.coreos.com \ - || true - kubectl get --namespace "${NAMESPACE}" -o yaml tackles.tackle.konveyor.io/tackle || true + if [ "${CI}" == "true" ]; then + debug_output="/tmp/konveyor-debug" + mkdir -p "${debug_output}" + namespace="${debug_output}/namespace.yaml" + all="${debug_output}/all_resources.yaml" + operator="${debug_output}/operator_resources.yaml" + tackle="${debug_output}/tackle.yaml" + pods="${debug_output}/pod_descriptions.yaml" + + kubectl get namespace "${NAMESPACE}" -o yaml | tee "${namespace}" + kubectl get --namespace "${NAMESPACE}" all | tee "${all}" + kubectl get --namespace "${NAMESPACE}" -o yaml \ + subscriptions.operators.coreos.com,catalogsources.operators.coreos.com,installplans.operators.coreos.com,clusterserviceversions.operators.coreos.com | tee "${operator}" + kubectl get --namespace "${NAMESPACE}" -o yaml tackles.tackle.konveyor.io/tackle | tee "${tackle}" + + for pod in $(kubectl get pods -n "${NAMESPACE}" -o jsonpath='{.items[*].metadata.name}'); do + kubectl --namespace "${NAMESPACE}" describe pod "${pod}" | tee -a "${pods}" + kubectl --namespace "${NAMESPACE}" logs "${pod}" | tee "${debug_output}/${pod}.log" + done + else + kubectl get namespace "${NAMESPACE}" -o yaml + kubectl get --namespace "${NAMESPACE}" all + kubectl get --namespace "${NAMESPACE}" -o yaml \ + subscriptions.operators.coreos.com,catalogsources.operators.coreos.com,installplans.operators.coreos.com,clusterserviceversions.operators.coreos.com + kubectl get --namespace "${NAMESPACE}" -o yaml tackles.tackle.konveyor.io/tackle + + for pod in $(kubectl get pods -n "${NAMESPACE}" -o jsonpath='{.items[*].metadata.name}'); do + kubectl --namespace "${NAMESPACE}" describe pod "${pod}" + done + fi - for pod in $(kubectl get pods -n "${NAMESPACE}" -o jsonpath='{.items[*].metadata.name}'); do - kubectl --namespace "${NAMESPACE}" describe pod "${pod}" || true - done exit 1 } trap 'debug' ERR