Bump golang.org/x/tools from 0.16.0 to 0.16.1 in /tools (#216) #829
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: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
golang-tests: | |
name: Go unit tests | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-latest | |
env: | |
TOOLS_PATH: "/opt/tools/bin" | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Set up Go release | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '1.21' | |
check-latest: true | |
- name: Install tools | |
run: | | |
mkdir -p $TOOLS_PATH | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
curl -LO https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl | |
curl -LO "https://dl.k8s.io/v$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256" | |
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check | |
chmod +x kubectl | |
cp kubectl "$TOOLS_PATH" | |
rm kubectl | |
env: | |
KUBECTL_VERSION: 1.25.1 | |
- name: Run tests | |
run: | |
make test | |
env: | |
PXC_OPERATOR_VERSION: 1.13.0 | |
PSMDB_OPERATOR_VERSION: 1.15.0 | |
PG_OPERATOR_VERSION: 2.2.0 | |
PERCONA_VERSION_SERVICE_URL: https://check-dev.percona.com/versions/v1 | |
eks-e2e-tests: | |
name: E2E tests (EKS) | |
timeout-minutes: 80 | |
concurrency: eks-e2e-tests | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-latest | |
env: | |
TOOLS_PATH: "/opt/tools/bin" | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Set up Go release | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '1.21' | |
check-latest: true | |
- name: Build operator | |
run: | |
make build | |
- name: Install tools | |
run: | | |
mkdir -p $TOOLS_PATH | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
# Kubectl | |
curl -LO https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl | |
curl -LO "https://dl.k8s.io/v$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256" | |
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check | |
chmod +x kubectl | |
cp kubectl "$TOOLS_PATH" | |
rm kubectl | |
# Kuttl | |
curl -Lo ./kubectl-kuttl https://github.com/kudobuilder/kuttl/releases/download/v0.15.0/kubectl-kuttl_0.15.0_linux_x86_64 | |
chmod +x ./kubectl-kuttl | |
mv ./kubectl-kuttl "$TOOLS_PATH" | |
# kubectl | |
curl -LO https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl | |
curl -LO "https://dl.k8s.io/v$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256" | |
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check | |
chmod +x kubectl | |
cp kubectl "$TOOLS_PATH" | |
rm kubectl | |
# Install EKSCTL | |
ARCH=amd64 | |
PLATFORM=$(uname -s)_$ARCH | |
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz" | |
tar -xzf eksctl_$PLATFORM.tar.gz -C "$TOOLS_PATH" | |
chmod +x "$TOOLS_PATH"/eksctl | |
# Configure CLI access | |
mkdir "$HOME"/.aws | |
echo "[default]" >> "$HOME"/.aws/credentials | |
echo "aws_access_key_id="$EKSUID"" >> "${HOME}"/.aws/credentials | |
echo "aws_secret_access_key="$EKSKEY"" >> "${HOME}"/.aws/credentials | |
echo "[default]" >> "${HOME}"/.aws/config | |
echo "region = "$EKSREG"" >> "${HOME}"/.aws/config | |
env: | |
KUBECTL_VERSION: 1.25.1 | |
EKSUID: ${{ secrets.EKSU }} | |
EKSKEY: ${{ secrets.EKSSAK }} | |
EKSREG: ${{ secrets.EKSREG }} | |
- name: Scale up cluster | |
run: | | |
eksctl scale nodegroup --cluster="$CLUSTER_NAME" --nodes=5 "$NODEPOOL_NAME" --wait | |
env: | |
CLUSTER_NAME: "dbaas-ci-20221005" | |
NODEPOOL_NAME: "terraform-node-dbaas-ci-20221005" | |
- name: Run upgrade tests | |
run: | | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
export KUBECONFIG="${HOME}/.kube/config" | |
mkdir -p "${KUBECONFIG%/*}" | |
echo "$BASE64_KUBECONFIG_DBAAS"|base64 -d > "${KUBECONFIG}" | |
kubectl kuttl test --config ./e2e-tests/kuttl-eks-upgrade.yml | |
env: | |
PXC_OPERATOR_VERSION: 1.13.0 | |
PSMDB_OPERATOR_VERSION: 1.15.0 | |
PG_OPERATOR_VERSION: 2.2.0 | |
PREVIOUS_PG_OPERATOR_VERSION: 2.2.0 # TODO: Revisit it after 2.3 release | |
PREVIOUS_PXC_OPERATOR_VERSION: 1.12.0 | |
PREVIOUS_PSMDB_OPERATOR_VERSION: 1.14.0 | |
BASE64_KUBECONFIG_DBAAS: ${{ secrets.BASE64_KUBECONFIG_DBAAS }} | |
PERCONA_VERSION_SERVICE_URL: https://check-dev.percona.com/versions/v1 | |
- name: Clean up custom resources | |
if: always() | |
run: | | |
namespaces=$(kubectl get pxc -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get pxc -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch pxc -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
namespaces=$(kubectl get psmdb -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get psmdb -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch psmdb -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
namespaces=$(kubectl get psmdb -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get psmdb -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch psmdb -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
kubectl delete db --all-namespaces --all | |
kubectl delete pvc --all-namespaces --all | |
kubectl get ns -o name | grep kuttl | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl delete ns | |
- name: Run core tests | |
if: always() | |
run: | | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
export KUBECONFIG="${HOME}/.kube/config" | |
mkdir -p "${KUBECONFIG%/*}" | |
echo "$BASE64_KUBECONFIG_DBAAS"|base64 -d > "${KUBECONFIG}" | |
kubectl kuttl test --config ./e2e-tests/kuttl-eks-core.yml | |
env: | |
PXC_OPERATOR_VERSION: 1.13.0 | |
PSMDB_OPERATOR_VERSION: 1.15.0 | |
PG_OPERATOR_VERSION: 2.2.0 | |
BASE64_KUBECONFIG_DBAAS: ${{ secrets.BASE64_KUBECONFIG_DBAAS }} | |
PERCONA_VERSION_SERVICE_URL: https://check-dev.percona.com/versions/v1 | |
- name: Run features tests | |
if: always() | |
run: | | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
export KUBECONFIG="${HOME}/.kube/config" | |
mkdir -p "${KUBECONFIG%/*}" | |
echo "$BASE64_KUBECONFIG_DBAAS"|base64 -d > "${KUBECONFIG}" | |
kubectl kuttl test --config ./e2e-tests/kuttl-eks-features.yml | |
env: | |
PXC_OPERATOR_VERSION: 1.13.0 | |
PSMDB_OPERATOR_VERSION: 1.15.0 | |
PG_OPERATOR_VERSION: 2.2.0 | |
BASE64_KUBECONFIG_DBAAS: ${{ secrets.BASE64_KUBECONFIG_DBAAS }} | |
PERCONA_VERSION_SERVICE_URL: https://check-dev.percona.com/versions/v1 | |
- name: Clean up custom resources | |
if: always() | |
run: | | |
namespaces=$(kubectl get pxc -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get pxc -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch pxc -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
namespaces=$(kubectl get psmdb -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get psmdb -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch psmdb -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
namespaces=$(kubectl get psmdb -A -o jsonpath='{.items[*].metadata.namespace}') | |
for namespace in ${namespaces[@]} | |
do | |
kubectl -n $namespace get psmdb -o name | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl patch psmdb -n $namespace -p '{"metadata":{"finalizers":null}}' --type merge | |
done | |
kubectl delete db --all-namespaces --all | |
kubectl delete pvc --all-namespaces --all | |
kubectl get ns -o name | grep kuttl | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl delete ns | |
- name: Scale down cluster | |
if: always() | |
run: | | |
eksctl scale nodegroup --cluster="$CLUSTER_NAME" --nodes=0 "$NODEPOOL_NAME" | |
env: | |
CLUSTER_NAME: "dbaas-ci-20221005" | |
NODEPOOL_NAME: "terraform-node-dbaas-ci-20221005" | |
- name: Clean up resources and CRDs | |
if: always() | |
run: | | |
export KUBECONFIG="${HOME}/.kube/config" | |
mkdir -p "${KUBECONFIG%/*}" | |
echo "$BASE64_KUBECONFIG_DBAAS"|base64 -d > "${KUBECONFIG}" | |
kubectl get crd -o name | grep .percona.com$ | awk -F '/' {'print $2'} | xargs --no-run-if-empty kubectl delete crd | |
kubectl delete crd postgresclusters.postgres-operator.crunchydata.com | |
env: | |
BASE64_KUBECONFIG_DBAAS: ${{ secrets.BASE64_KUBECONFIG_DBAAS }} | |
- name: Clean up credentials | |
run: | | |
rm -f "$HOME"/.aws/config | |
rm -f "$HOME"/.aws/credentials | |
make-bundle: | |
name: Make Bundle | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-latest | |
env: | |
TOOLS_PATH: "/opt/tools/bin" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go release | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '1.21' | |
check-latest: true | |
- name: Install operator-sdk | |
run: | | |
mkdir -p $TOOLS_PATH | |
echo $TOOLS_PATH >> $GITHUB_PATH | |
export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac) | |
export OS=$(uname | awk '{print tolower($0)}') | |
export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.26.0 | |
curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH} | |
gpg --keyserver keyserver.ubuntu.com --recv-keys 052996E2A20B5C7E | |
curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt | |
curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt.asc | |
gpg -u "Operator SDK (release) <cncf-operator-sdk@cncf.io>" --verify checksums.txt.asc | |
grep operator-sdk_${OS}_${ARCH} checksums.txt | sha256sum -c - | |
chmod +x operator-sdk_${OS}_${ARCH} | |
mv operator-sdk_${OS}_${ARCH} $TOOLS_PATH/operator-sdk | |
- name: Make bundle and build bundle image | |
run: | | |
make bundle bundle-build |