chore: Bump to Go 1.22 #7
Workflow file for this run
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: "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.22' | |
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 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 | |
integration-tests: | |
runs-on: ubuntu-latest | |
needs: [docker-lint] | |
strategy: | |
matrix: | |
kube-version: | |
- "1.27" | |
- "1.28" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
- name: Setup KinD Cluster | |
env: | |
YAML_CONFIG: ${{ format('hack/kind-{0}.yaml', matrix.kube-version) }} | |
run: | | |
# Install kind | |
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-$(uname)-amd64 | |
chmod +x ./kind | |
sudo mv ./kind /usr/local/bin/kind | |
# Create cluster from specific config | |
kind create cluster --config "${YAML_CONFIG}" | |
- name: Create nexus namespace | |
run: kubectl create ns nexus | |
- name: Deploy nexus server and wait for readiness | |
run: | | |
kubectl apply -f tests/e2e/helm-success-path/01-install-nexus-server.yaml --namespace nexus | |
kubectl wait --for condition=Available=True deployment nexus --timeout=120s --namespace nexus | |
- name: Port-forward nexus service | |
run: kubectl port-forward svc/nexus 8081:8081 --namespace nexus & sleep 5 | |
- name: Run tests against the Nexus service | |
run: | | |
# Extract the cluster IP and port from the service | |
TEST_NEXUS_URL="http://localhost:8081" | |
TEST_NEXUS_PASSWORD="admin123" | |
TEST_NEXUS_USER="admin" | |
echo "Test Nexus URL: $TEST_NEXUS_URL" | |
# Set the URL in environment variable for make test | |
export TEST_NEXUS_URL | |
export TEST_NEXUS_USER | |
export TEST_NEXUS_PASSWORD | |
# Run the make test | |
make test | |
- name: Delete the Kubernetes cluster | |
if: always() | |
run: kind delete cluster |