Add minikube testing #317
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 | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure Git | |
run: | | |
git config user.name "$GITHUB_ACTOR" | |
git config user.email "[email protected]" | |
- 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: charts/vaas | |
- name: Run chart-testing (lint) | |
run: ct lint --validate-maintainers=false --charts 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 | |
EOF | |
helm dep up charts/vaas | |
helm upgrade --install vaas charts/vaas -f values-local.yaml -n vaas --create-namespace --debug | |
- name: Verify Pods | |
run: | | |
sleep 10 | |
minikube kubectl -- get pods --namespace vaas || true | |
minikube kubectl -- wait --for=condition=ready pods --namespace vaas --timeout=300s --all | |
- name: Checkout Vaas Java SDK | |
uses: actions/checkout@v4 | |
with: | |
repository: GDATASoftwareAG/vaas | |
- name: Run Java SDK Example | |
run: | | |
sudo echo "$(minikube ip) vaas" | sudo tee -a /etc/hosts | |
curl -s "https://get.sdkman.io" | bash | |
source "$HOME/.sdkman/bin/sdkman-init.sh" | |
sdk install java 21.0.3-tem | |
sdk use java 21.0.3-tem | |
gradle --version | |
export BASE_PWD=$(pwd) | |
cd ./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 $BASE_PWD | |
- 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: 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 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 |