Skip to content

Enable 3 node deployment #17

Enable 3 node deployment

Enable 3 node deployment #17

Workflow file for this run

name: run-tests
on:
pull_request
# remove CI_RUNNER_CREATOR_KEY
# remove GH_PERSONAL_ACCESS_TOKEN ?
# remove CI_RUNNER_DEBUG_SSH_PUBLIC_KEY
#
jobs:
# lint:
# concurrency:
# group: lint-golangci-${{ github.head_ref || github.ref_name }}
# cancel-in-progress: true
# runs-on: ubuntu-latest
# steps:
# - name: checkout
# uses: actions/checkout@v3
# - name: setup-go
# uses: actions/setup-go@v3
# with:
# go-version: '1.20'
# - name: golangci-lint
# uses: golangci/golangci-lint-action@v2
# with:
# version: v1.52.2
# code-format-check:
# concurrency:
# group: lint-autoformat-${{ github.head_ref || github.ref_name }}
# cancel-in-progress: true
# runs-on: ubuntu-latest
# steps:
# - name: checkout
# uses: actions/checkout@v3
# - name: setup-go
# uses: actions/setup-go@v3
# with:
# go-version: '1.20'
# - name: Install utilities
# run: |
# go install mvdan.cc/[email protected]
# go install github.com/rinchsan/gosimports/cmd/[email protected]
# - name: format all files with auto-formatter
# run: bash ./.github/scripts/format-all-go-code.sh "$PWD"
# - name: Check repository diff
# run: bash ./.github/scripts/check-work-copy-equals-to-committed.sh "auto-format broken"
# run-unit-tests:
# concurrency:
# group: run-unit-tests-${{ github.head_ref || github.ref_name }}
# cancel-in-progress: true
# needs:
# - lint
# - code-format-check
# runs-on: ubuntu-latest
# outputs:
# result: ${{ steps.run-unit-tests.outputs.result }}
# steps:
# - name: checkout
# uses: actions/checkout@v3
# - name: setup-go
# uses: actions/setup-go@v3
# with:
# go-version: '1.20'
# - name: setup-medium-test-class-binaries
# run: |
# # This installs kube-apiserver and etcd binaries for `medium`
# # class tests. Refer to the writing tests docs for more info.
# make envtest
# KUBEBUILDER_ASSETS=$(./bin/setup-envtest use 1.26 -p path)
# echo "KUBEBUILDER_ASSETS=$KUBEBUILDER_ASSETS" >> $GITHUB_ENV
# - name: setup-gotestsum
# run: |
# go install gotest.tools/[email protected]
# - name: run-unit-tests
# id: run-unit-tests
# run: |
# gotestsum --format pkgname --jsonfile log.json -- -v -timeout 900s -p 1 ./internal/... -ginkgo.vv -coverprofile cover.out
# - name: convert-to-human-readable
# run: jq -r '.Output| gsub("[\\n]"; "")' log.json 2>/dev/null 1>log.txt || true
# - name: artifact-upload-step
# uses: actions/upload-artifact@v4
# id: artifact-upload-step
# if: always()
# with:
# name: unit-tests-log
# path: log.txt
# if-no-files-found: error
# - name: echo-tests-log-url
# run: echo 'Unit tests log URL is ${{ steps.artifact-upload-step.outputs.artifact-url }}'
run-e2e-tests:
concurrency:
group: run-e2e-tests-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
needs:

Check failure on line 94 in .github/workflows/run-tests.yml

View workflow run for this annotation

GitHub Actions / run-tests

Invalid workflow file

The workflow is not valid. .github/workflows/run-tests.yml (Line: 94, Col: 11): Unexpected value ''
# - lint
# - code-format-check
# - run-unit-tests
runs-on: ubuntu-latest
outputs:
result: ${{ steps.run-e2e-tests.outputs.result }}
steps:
- name: checkout
uses: actions/checkout@v3
- name: setup-go
uses: actions/setup-go@v3
with:
go-version: '1.20'
- name: install-dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential
go install sigs.k8s.io/[email protected]
curl -LO https://dl.k8s.io/release/v1.25.3/bin/linux/amd64/kubectl
chmod +x ./kubectl
HELM_PKG="helm-v3.13.3-linux-amd64.tar.gz"
curl -LO https://get.helm.sh/"${HELM_PKG}"
tar -zxvf "${HELM_PKG}"
mv ./linux-amd64/helm .
curl -sSL https://storage.yandexcloud.net/yandexcloud-ydb/install.sh | bash
echo "$(pwd)" >> $GITHUB_PATH
echo "$HOME/ydb/bin" >> $GITHUB_PATH
echo "$HOME/go/bin" >> $GITHUB_PATH
- name: check-dependencies
run: |
gcc --version
go version
kind version
kubectl version --client=true
helm version
- name: setup-k8s-cluster
run: |
kind delete cluster
kind create cluster \
--image=kindest/node:v1.25.3@sha256:cd248d1438192f7814fbca8fede13cfe5b9918746dfa12583976158a834fd5c5 \
--config=./e2e/kind-cluster-config.yaml
kubectl wait --timeout=5m --for=condition=ready node -l worker=true
kubectl label --overwrite node kind-worker topology.kubernetes.io/zone=fakeZone1
kubectl label --overwrite node kind-worker2 topology.kubernetes.io/zone=fakeZone2
kubectl label --overwrite node kind-worker3 topology.kubernetes.io/zone=fakeZone3
- name: build-operator-image
uses: docker/build-push-action@v3
with:
context: .
push: false
# Get commit short sha within Github action workflow
# Just a random string name, we aren't uploading anyway
tags: kind/ydb-operator:current
- name: load-and-deploy-operator
run: |
kind load docker-image kind/ydb-operator:current
- name: pull-and-load-kube-webhook-certgen-image
uses: nick-fields/retry@v3
with:
timeout_minutes: 5
retry_wait_seconds: 20
max_attempts: 3
command: |
docker pull k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0
kind load docker-image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0
- name: pull-and-load-ydb-image
run: |
# TODO would be cool to parse YDB image from manifests to avoid duplicating information
docker pull cr.yandex/crptqonuodf51kdj7a7d/ydb:23.3.17
kind load docker-image cr.yandex/crptqonuodf51kdj7a7d/ydb:23.3.17
- name: setup-gotestsum
run: |
go install gotest.tools/[email protected]
- name: run-e2e-tests
id: run-e2e-tests
run: |
gotestsum --format pkgname --jsonfile log.json -- -v -timeout 3600s -p 1 ./e2e/... -ginkgo.vv
- name: convert-to-human-readable
run: jq -r '.Output| gsub("[\\n]"; "")' log.json 2>/dev/null 1>log.txt || true
- name: artifact-upload-step
uses: actions/upload-artifact@v4
id: artifact-upload-step
if: always()
with:
name: e2e-tests-log
path: log.txt
if-no-files-found: error
- name: echo-tests-log-url
run: echo 'Unit tests log URL is ${{ steps.artifact-upload-step.outputs.artifact-url }}'
- name: teardown-k8s-cluster
run: |
kind delete cluster