update env vars (#50963) #4
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
# this file uses MBA https://github.com/metabase/mba to spin up a Metabase | |
# instance then runs the test script in the MBA instance sharing the same | |
# network to interact with presto container | |
# TODO: get rid of MBA and use actions/prepare-backend instead | |
name: Kerberized Presto Integration Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- "release**" | |
- "feature**" | |
tags: | |
- "**" | |
jobs: | |
files-changed: | |
name: Check which files changed | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 3 | |
outputs: | |
backend_presto_kerberos: ${{ steps.changes.outputs.backend_presto_kerberos }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Test which files changed | |
uses: dorny/paths-filter@v3.0.0 | |
id: changes | |
with: | |
token: ${{ github.token }} | |
filters: .github/file-paths.yaml | |
run-presto-kerberos-test: | |
needs: files-changed | |
if: needs.files-changed.outputs.backend_presto_kerberos == 'true' | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 40 | |
steps: | |
- name: Install babashka | |
run: > | |
mkdir -p /tmp/babashka-install \ | |
&& cd /tmp/babashka-install \ | |
&& curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install \ | |
&& chmod +x install \ | |
&& sudo ./install \ | |
&& cd - | |
- name: Checkout Metabase repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check out Presto Kerberos Docker Compose | |
uses: actions/checkout@v4 | |
with: | |
repository: metabase/presto-kerberos-docker | |
ref: master | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: presto-kerberos-docker | |
- name: Bring up Presto+Kerberos cluster | |
run: cd presto-kerberos-docker && docker compose up -d && cd .. | |
- name: Run Presto test query from command line (sanity check) | |
run: cd presto-kerberos-docker && ./test.sh && cd .. | |
# Since we are managing the Docker containers from the GitHub action container, we need to copy all the | |
# relevant resources now, into the resources dir for later consumption by the app | |
- name: Copy Presto SSL keystore to resources | |
run: docker cp presto-kerberos:/tmp/ssl_keystore.jks resources | |
- name: Copy krb5.conf file to resources | |
run: docker cp presto-kerberos:/etc/krb5.conf resources | |
- name: Copy client.keytab file to resources | |
run: docker cp presto-kerberos:/home/presto/client.keytab resources | |
- name: Checkout mba | |
uses: actions/checkout@v4 | |
with: | |
repository: metabase/mba | |
ref: master | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: mba-src | |
- name: ls mba | |
run: ls -latr mba-src | |
- name: Symlink mba | |
run: cd mba-src && sudo ln -s $(pwd)/src/main.clj /usr/local/bin/mba && chmod +x /usr/local/bin/mba && cd .. | |
- name: Ensure mba | |
run: which mba | |
- name: Run Metabase via MBA | |
run: mba --mb . --data-db postgres-data -n example.com compose config > mba-compose.yml | |
- name: Adjust generated docker-compose config | |
uses: actions/github-script@v7 | |
with: | |
script: | #js | |
const fs = require("fs"); | |
const config = fs.readFileSync("mba-compose.yml", "utf8"); | |
const newConfig = config.replace( | |
/name:\s+example.com/, | |
"name: example.com\n external: true", | |
); | |
fs.writeFileSync("mba-compose.yml", newConfig); | |
- name: Print compose config | |
run: cat mba-compose.yml | |
- name: Run mba | |
run: docker compose -f mba-compose.yml up -d | |
- name: Run test script in MBA instance | |
run: docker compose -f mba-compose.yml exec metabase .github/scripts/run-presto-kerberos-integration-test.sh |