Add minikube testing #333
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: Release Charts | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
pull_request: | |
branches: | |
- main | |
env: | |
HELM_EXPERIMENTAL_OCI: 1 | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Vaas Helm | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: vaas-helm | |
- name: Checkout Vaas Java SDK | |
uses: actions/checkout@v4 | |
with: | |
repository: GDATASoftwareAG/vaas | |
path: vaas-sdks | |
- name: Configure Git | |
run: | | |
cd vaas-helm | |
git config user.name "$GITHUB_ACTOR" | |
git config user.email "[email protected]" | |
cd .. | |
- name: Install Helm | |
uses: azure/setup-helm@v4 | |
with: | |
version: v3.13.3 | |
- name: Install python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3 | |
- name: Set up chart-testing | |
uses: helm/[email protected] | |
- name: Extract tag | |
id: extract_tag | |
run: | | |
version=$(grep '^version:' Chart.yaml | sed 's/"//g' | awk '{print $2}') | |
echo "Chart version is $version" | |
echo "CHART_VERSION=$version" >> $GITHUB_ENV | |
echo "CHART_VERSION=$version" >> $GITHUB_OUTPUT | |
working-directory: vaas-helm/charts/vaas | |
- name: Run chart-testing (lint) | |
run: ct lint --validate-maintainers=false --charts vaas-helm/charts/vaas | |
- name: Install Minikube | |
uses: manusa/[email protected] | |
with: | |
minikube version: v1.34.0 | |
kubernetes version: v1.30.0 | |
driver: docker | |
start args: --cpus 4 --memory 8192 | |
- name: Set up kubectl | |
uses: azure/setup-kubectl@v3 | |
with: | |
version: 'latest' | |
- name: Install Helm | |
uses: azure/setup-helm@v4 | |
with: | |
version: v3.13.3 | |
- name: Enable ingress | |
run: | | |
minikube addons enable ingress | |
minikube kubectl -- wait --namespace ingress-nginx \ | |
--for=condition=ready pod \ | |
--selector=app.kubernetes.io/component=controller \ | |
--timeout=120s | |
- name: Deploy Helm Chart | |
run: | | |
cat <<EOF > values-local.yaml | |
global: | |
secret: | |
dockerconfigjson: "${{ secrets.DOCKER_CONFIG_JSON }}" | |
cloud: | |
hashLookup: | |
enabled: false | |
allowlistLookup: | |
enabled: false | |
gdscan: | |
autoUpdate: | |
networkPolicy: | |
k8sApiPort: 6443 | |
EOF | |
helm dep up vaas-helm/charts/vaas | |
helm upgrade --install vaas vaas-helm/charts/vaas -f values-local.yaml -n vaas --create-namespace --debug | |
- name: Verify Pods | |
run: | | |
sleep 5 | |
minikube kubectl -- get pods --namespace vaas || true | |
minikube kubectl -- wait --for=condition=ready pods --namespace vaas --timeout=300s --all | |
- name: Run Java SDK Example | |
run: | | |
sudo echo "$(minikube ip) vaas" | sudo tee -a /etc/hosts | |
sudo apt-get update | |
sudo apt-get install -y openjdk-21-jdk | |
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 | |
export PATH=$JAVA_HOME/bin:$PATH | |
cd ./vaas-sdks/java/examples/VaasExample | |
export SCAN_PATH=$(pwd)/build.gradle | |
export CLIENT_ID=vaas | |
export CLIENT_SECRET=$(minikube kubectl -- get secret -n vaas vaas-client-secret -o jsonpath="{.data.secret}" | base64 -d) | |
export VAAS_URL=ws://vaas/ws | |
export TOKEN_URL=http://vaas/auth/protocol/openid-connect/token | |
gradle fileScan | |
minikube kubectl -- logs -n vaas $(minikube kubectl -- get pods -n vaas -l app.kubernetes.io/name=gateway -o jsonpath="{.items[0].metadata.name}") | grep "Got verdict from store: Unknown" | |
gradle fileScan | |
minikube kubectl -- logs -n vaas $(minikube kubectl -- get pods -n vaas -l app.kubernetes.io/name=gateway -o jsonpath="{.items[0].metadata.name}") | grep "Got verdict from store: Clean" | |
cd - | |
- name: Push chart | |
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | |
uses: appany/[email protected] | |
with: | |
name: vaas | |
repository: gdatasoftwareag/charts | |
tag: $CHART_VERSION | |
path: vaas-helm/charts/vaas | |
registry: ghcr.io | |
registry_username: ${{ secrets.REGISTRY_USERNAME }} | |
registry_password: ${{ secrets.CR_TOKEN }} | |
update_dependencies: "true" | |
- name: create zipfile | |
run: zip -r vaas-helm.zip vaas-helm/charts/vaas/ | |
- name: Github Release | |
uses: softprops/action-gh-release@v2 | |
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | |
with: | |
tag_name: ${{steps.extract_tag.outputs.CHART_VERSION}} | |
generate_release_notes: true | |
make_latest: true | |
files: | | |
vaas-helm.zip |