Skip to content

chore: Bump to Go 1.22 #7

chore: Bump to Go 1.22

chore: Bump to Go 1.22 #7

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.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/chart-testing-action@v2.6.0
- 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/hadolint-action@v1.5.0
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