Skip to content

Bump golang.org/x/text from 0.3.7 to 0.3.8 #140

Bump golang.org/x/text from 0.3.7 to 0.3.8

Bump golang.org/x/text from 0.3.7 to 0.3.8 #140

Workflow file for this run

---
# yamllint disable rule:line-length
name: PR and branch sanity
on: # yamllint disable-line rule:truthy
push:
tags:
- v*
branches:
- release-*
- main
pull_request:
branches:
- '*'
env:
GO_VERSION: "1.18"
IMAGE_TAG_BASE: "quay.io/ramendr/ramen"
IMAGE_REGISTRY: "quay.io"
IMAGE_REPOSITORY: "ramendr"
IMAGE_NAME: "ramen"
IMAGE_TAG: "sanity"
defaults:
run:
shell: bash
jobs:
lint:
name: Linters
runs-on: ubuntu-20.04
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Install prereqs
run: |
echo 'APT::Acquire::Retries "5";' | sudo tee /etc/apt/apt.conf.d/80-retries
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip ruby
sudo gem install mdl
sudo pip3 install yamllint
- name: Run linters
run: ./hack/pre-commit.sh
golangci:
name: Golangci Lint
runs-on: ubuntu-20.04
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Setup go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: GolangCI Lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
build-image-and-ensure-clean-branch:
name: Build image and ensure clean branch
runs-on: ubuntu-20.04
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Setup go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Build image
run: make docker-build
- name: Run unit tests
run: GO_TEST_GINKGO_ARGS="" make test
- name: Export image
run: docker save -o /tmp/ramen-operator.tar ${IMAGE_TAG_BASE}-operator:${IMAGE_TAG}
- name: Save image artifact
uses: actions/upload-artifact@v2
with:
name: ramen-operator
path: /tmp/ramen-operator.tar
retention-days: 1
- name: Go tidy
run: go mod tidy
- name: Git branch sanity
run: |
echo "Failing if any auto generated files are updated, checking 'git status'"
git --no-pager diff
git status --porcelain 2>&1 | tee /dev/stderr | (! read)
deploy-check:
name: Check artifacts and operator deployment
needs: [build-image-and-ensure-clean-branch]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
kubernetes_version: ["1.20.7"]
include:
- kubernetes_version: "1.20.7"
kind_image: "1.20.7@sha256:cbeaf907fc78ac97ce7b625e4bf0de16e3ea725daf6b04f930bd14c67c671ff9"
kind_version: "v0.11.1"
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes_version }}
KIND_VERSION: ${{ matrix.kind_version }}
KIND_IMAGE: ${{ matrix.kind_image }}
KIND_CLUSTER_NAME: "sanity"
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Setup go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Install kubectl
run: |
curl -LO "https://storage.googleapis.com/kubernetes-release/release/v${KUBERNETES_VERSION}/bin/linux/amd64/kubectl"
sudo install ./kubectl /usr/local/bin/
- name: Create Kind kubernetes cluster
run: ./hack/setup-kind-cluster.sh
- name: Download image artifact
uses: actions/download-artifact@v1
with:
name: ramen-operator
path: /tmp
- name: Load image artifact
run: |
docker load -i /tmp/ramen-operator.tar
kind load docker-image ${IMAGE_TAG_BASE}-operator:${IMAGE_TAG} --name ${KIND_CLUSTER_NAME}
- name: Deploy dependent CRDs
run: |
kubectl apply -f hack/test/
- name: Deploy operator
run: |
make deploy
kubectl get deployment -n ramen-system
kubectl -n ramen-system wait --for=condition=Available --timeout=60s deploy/ramen-hub-operator
kubectl -n ramen-system wait --for=condition=Available --timeout=60s deploy/ramen-dr-cluster-operator
- name: Display failure logs
if: ${{ failure() }}
run: |
echo "===> BEGIN failure details <==="
echo "===> NODE details <==="
kubectl get node -o yaml
echo "===> Ramen POD details <==="
kubectl get pods -n ramen-system -o yaml
echo "===> Ramen POD describe <==="
kubectl describe pods -n ramen-system
echo "===> Ramen DR Orchestrator POD logs <==="
kubectl logs -n ramen-system deployment/ramen-hub-operator -c manager
echo "===> Ramen DR Manager POD logs <==="
kubectl logs -n ramen-system deployment/ramen-dr-cluster-operator -c manager
echo "===> END failure details <==="
publish-image:
name: Publish built image
needs: [deploy-check, lint, golangci]
if: >
(github.event_name == 'push') &&
(github.ref == 'refs/heads/main' ||
startsWith(github.ref, 'refs/heads/release-') ||
startsWith(github.ref, 'refs/tags/v')) &&
(github.repository == 'ramendr/ramen')
runs-on: ubuntu-20.04
steps:
- name: Download image artifact
uses: actions/download-artifact@v1
with:
name: ramen-operator
path: /tmp
- name: Load image artifact
run: |
docker load -i /tmp/ramen-operator.tar
- name: Login to Quay
uses: docker/login-action@v1
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
- name: Determine image tag
run: |
[[ "${{ github.ref }}" =~ ^refs\/(heads|tags)\/(release-)?(.*) ]]
echo "heads or tags? ${BASH_REMATCH[1]}"
echo "release? ${BASH_REMATCH[2]}"
echo "version? ${BASH_REMATCH[3]}"
TAG=""
if test "${BASH_REMATCH[1]}" = "heads"; then
if test "${BASH_REMATCH[2]}" = "" && test "${BASH_REMATCH[3]}" = "main"; then
TAG="canary"
elif test "${BASH_REMATCH[2]}" = "release-"; then
TAG="${BASH_REMATCH[3]}-canary"
fi
elif test "${BASH_REMATCH[1]}" == "tags" && test "${BASH_REMATCH[2]}" = ""; then
TAG="${BASH_REMATCH[3]}"
fi
test "${TAG}" = "" && exit 1
echo "Publish image tag ${TAG}"
echo "publish_image_tag=${TAG}" >> $GITHUB_ENV
- name: Push operator image to Quay
run: |
docker tag "${IMAGE_TAG_BASE}-operator:${IMAGE_TAG}" "${IMAGE_TAG_BASE}-operator:${{ env.publish_image_tag }}"
docker push "${IMAGE_TAG_BASE}-operator:${{ env.publish_image_tag }}"
# TODO: We do not need to build bundles and catalogs each time, fix once we reach alpha
- name: Checkout source
uses: actions/checkout@v2
- name: Setup go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Build and push bundle images to Quay
run: |
IMAGE_TAG="${{ env.publish_image_tag }}" make bundle-build bundle-push
- name: Build and push catalog image to Quay
run: |
IMAGE_TAG="${{ env.publish_image_tag }}" make catalog-build catalog-push
# TODO: Test built bundles and catalog based install