Skip to content

chore: Migrate from gerrit to github pipelines #1

chore: Migrate from gerrit to github pipelines

chore: Migrate from gerrit to github pipelines #1

Workflow file for this run

name: "pull_request"
on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
GOLANG_VERSION: '1.20'
jobs:
check-commit-message:
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Commit Format
uses: gsactions/commit-message-checker@v2
with:
pattern: '^(fix|feat|docs|style|refactor|test|chore){1}(\([\w\-\.]+\))?(!)?: .+( (#\d+))?$'
error: 'Your commit message should be in the format "type: Description (#issue)". Example: "fix: Update build (#33)"'
excludeDescription: 'true'
excludeTitle: 'true'
checkAllCommitMessages: 'true'
accessToken: ${{ secrets.GITHUB_TOKEN }}
- name: Check Line Length
uses: gsactions/commit-message-checker@v2
with:
pattern: '.{0,50}'
error: 'The maximum line length of 50 characters is exceeded.'
excludeDescription: 'true'
excludeTitle: 'true'
checkAllCommitMessages: 'true'
accessToken: ${{ secrets.GITHUB_TOKEN }}
helm-docs:
needs: [check-commit-message]
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: Make Build
run: make validate-docs
helm-lint:
needs: [helm-docs]
runs-on: ubuntu-20.04
env:
CHART_DIR: "deploy-templates"
CT_CONFIGS_DIR: "."
CT_CONFIGS_DIR_DEFAULT: "ct-configs"
CT_FILE_PATH: "ct.yaml"
LINTCONF_FILE_PATH: "lintconf.yaml"
CHART_SCHEMA_FILE_PATH: "chart_schema.yaml"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.12.1
- uses: actions/setup-python@v4
with:
python-version: '3.10'
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (lint)
run: ct lint --target-branch ${{ github.event.repository.default_branch }} \
--charts ${CHART_DIR}/ \
--config ${CT_FILE_PATH} \
--lint-conf ${LINTCONF_FILE_PATH} \
--chart-yaml-schema ${CHART_SCHEMA_FILE_PATH}
build-and-lint:
needs: [helm-lint]
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: Make Build
run: make build
- name: Make Test
run: make test
- name: Make Lint
run: make lint
docker-lint:
needs: [build-and-lint]
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run hadolint
uses: hadolint/[email protected]
with:
dockerfile: Dockerfile
e2e-tests:
name: End-to-end tests
needs: [docker-lint]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
# The e2e tests are run on the lowest and highest supported k8s version.
# All Kubernetes version in between expose the same APIs, hence the operator
# should be compatible with them.
kube-version:
- "1.27"
- "1.28"
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: "install kuttl"
run: ./hack/install-kuttl.sh
- name: "run tests"
env:
KUBE_VERSION: ${{ matrix.kube-version }}
run: make start-kind KUBE_VERSION=$KUBE_VERSION && make e2e
e2e-tests-check:
runs-on: ubuntu-20.04
if: always()
needs: [e2e-tests]
steps:
- name: Print result
run: echo ${{ needs.e2e-tests.result }}
- name: Interpret result
run: |
if [[ success == ${{ needs.e2e-tests.result }} ]]
then
echo "All matrix jobs passed!"
else
echo "One or more matrix jobs failed."
false
fi