From e7231b60585dd85b1a32a598379a8cad64cce3d6 Mon Sep 17 00:00:00 2001 From: Ante Javor Date: Wed, 26 Jun 2024 13:50:03 +0200 Subject: [PATCH] Add enterprise licence to test. (#32) Injected a license to a test for HA. Separated the actions for testing since HA will require a special setup. --- .../lint-test-high-availability.yaml | 81 +++++++++++++++++++ .github/workflows/lint-test-memgraph-lab.yaml | 56 +++++++++++++ .../{lint-test.yml => lint-test-memgraph.yml} | 10 ++- 3 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/lint-test-high-availability.yaml create mode 100644 .github/workflows/lint-test-memgraph-lab.yaml rename .github/workflows/{lint-test.yml => lint-test-memgraph.yml} (76%) diff --git a/.github/workflows/lint-test-high-availability.yaml b/.github/workflows/lint-test-high-availability.yaml new file mode 100644 index 0000000..8b64f1d --- /dev/null +++ b/.github/workflows/lint-test-high-availability.yaml @@ -0,0 +1,81 @@ +name: Lint and Test Charts + +on: + pull_request: + paths: + - 'charts/memgraph-high-availability/**' + + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.14.0 + + - uses: actions/setup-python@v4 + with: + python-version: '3.12' + check-latest: true + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Run chart-testing (lint) + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --target-branch ${{ github.event.repository.default_branch }} + continue-on-error: true + + - name: Create kind cluster + if: steps.list-changed.outputs.changed == 'true' + uses: helm/kind-action@v1.8.0 + + - name: Set up Memgraph environment variables + if: steps.list-changed.outputs.changed == 'true' + run: | + echo "MEMGRAPH_ENTERPRISE_LICENSE=${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}" >> $GITHUB_ENV + echo "MEMGRAPH_ORGANIZATION_NAME=${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}" >> $GITHUB_ENV + + - name: Custom Helm install for memgraph-high-availability + if: steps.list-changed.outputs.changed == 'true' + env: + MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }} + MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }} + run: | + helm install mem-ha-test ./charts/memgraph-high-availability \ + --set memgraph.env.MEMGRAPH_ENTERPRISE_LICENSE=$MEMGRAPH_ENTERPRISE_LICENSE \ + --set memgraph.env.MEMGRAPH_ORGANIZATION_NAME=$MEMGRAPH_ORGANIZATION_NAME + + - name: Wait for Memgraph setup to complete + if: steps.list-changed.outputs.changed == 'true' + run: sleep 30 + + - name: Check the status of Memgraph setup + if: steps.list-changed.outputs.changed == 'true' + run: | + pods=$(kubectl get pods --selector=job-name=memgraph-setup --output=jsonpath='{.items[*].metadata.name}') + for pod in $pods; do + echo "Logs from $pod:" + kubectl logs $pod + done + + - name: Run Helm tests + if: steps.list-changed.outputs.changed == 'true' + run: | + helm test mem-ha-test + kubectl logs -l app=memgraph diff --git a/.github/workflows/lint-test-memgraph-lab.yaml b/.github/workflows/lint-test-memgraph-lab.yaml new file mode 100644 index 0000000..2d51f3e --- /dev/null +++ b/.github/workflows/lint-test-memgraph-lab.yaml @@ -0,0 +1,56 @@ +name: Lint and Test Charts Memgraph Lab + +on: + pull_request: + paths: + - 'charts/memgraph-lab/**' + + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.14.0 + + - uses: actions/setup-python@v4 + with: + python-version: '3.12' + check-latest: true + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Run chart-testing (lint) + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --target-branch ${{ github.event.repository.default_branch }} + continue-on-error: true + + - name: Create kind cluster + if: steps.list-changed.outputs.changed == 'true' + uses: helm/kind-action@v1.8.0 + + - name: Set up Memgraph environment variables + if: steps.list-changed.outputs.changed == 'true' + run: | + echo "MEMGRAPH_ENTERPRISE_LICENSE=${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}" >> $GITHUB_ENV + echo "MEMGRAPH_ORGANIZATION_NAME=${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}" >> $GITHUB_ENV + + - name: Run chart-testing (install) + if: steps.list-changed.outputs.changed == 'true' + run: ct install --target-branch ${{ github.event.repository.default_branch }} diff --git a/.github/workflows/lint-test.yml b/.github/workflows/lint-test-memgraph.yml similarity index 76% rename from .github/workflows/lint-test.yml rename to .github/workflows/lint-test-memgraph.yml index eab5b9c..0a1a394 100644 --- a/.github/workflows/lint-test.yml +++ b/.github/workflows/lint-test-memgraph.yml @@ -1,9 +1,9 @@ -name: Lint and Test Charts +name: Lint and Test Charts Memgraph on: pull_request: paths: - - 'charts/**' + - 'charts/memgraph/**' jobs: @@ -45,6 +45,12 @@ jobs: if: steps.list-changed.outputs.changed == 'true' uses: helm/kind-action@v1.8.0 + - name: Set up Memgraph environment variables + if: steps.list-changed.outputs.changed == 'true' + run: | + echo "MEMGRAPH_ENTERPRISE_LICENSE=${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}" >> $GITHUB_ENV + echo "MEMGRAPH_ORGANIZATION_NAME=${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}" >> $GITHUB_ENV + - name: Run chart-testing (install) if: steps.list-changed.outputs.changed == 'true' run: ct install --target-branch ${{ github.event.repository.default_branch }}