Support trino roles #452
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js environment | |
| uses: actions/[email protected] | |
| with: | |
| node-version: "14.x" | |
| cache: 'yarn' | |
| - name: Install dependencies | |
| run: yarn install --frozen-lockfile | |
| - name: Build and test frontend | |
| run: yarn build | |
| - name: Setup Go environment | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.22" | |
| - name: Test backend | |
| uses: magefile/mage-action@v3 | |
| with: | |
| version: latest | |
| args: coverage | |
| - name: Build backend | |
| uses: magefile/mage-action@v3 | |
| with: | |
| version: latest | |
| args: buildAll | |
| - name: Setup services (Trino, Grafana, PostgreSQL, Keycloak) | |
| run: | | |
| docker network create trino | |
| echo "Starting PostgreSQL..." | |
| docker run --rm --detach \ | |
| --name postgres \ | |
| --net trino \ | |
| --env POSTGRES_USER=keycloak \ | |
| --env POSTGRES_PASSWORD=keycloak \ | |
| --env POSTGRES_DB=keycloak \ | |
| postgres:17.4 | |
| echo "Starting Keycloak..." | |
| docker run --rm --detach \ | |
| --name keycloak \ | |
| --net trino \ | |
| --publish 18080:8080 \ | |
| --env KC_BOOTSTRAP_ADMIN_USERNAME=admin \ | |
| --env KC_BOOTSTRAP_ADMIN_PASSWORD=admin \ | |
| --env KC_DB=postgres \ | |
| --env KC_DB_URL_HOST=postgres \ | |
| --env KC_DB_URL_DATABASE=keycloak \ | |
| --env KC_DB_USERNAME=keycloak \ | |
| --env KC_DB_PASSWORD=keycloak \ | |
| --volume "$(pwd)/test-data/test-keycloak-realm.json:/opt/keycloak/data/import/realm.json" \ | |
| quay.io/keycloak/keycloak:26.1.4 \ | |
| start-dev --import-realm | |
| echo "Waiting for Keycloak to be ready..." | |
| while true; do | |
| if curl -s http://localhost:18080/realms/master | grep -q "realm"; then | |
| echo "Keycloak is ready!" | |
| break | |
| fi | |
| echo "Waiting for Keycloak..." | |
| sleep 5 | |
| done | |
| echo "Starting Trino..." | |
| docker run --rm --detach \ | |
| --name trino \ | |
| --net trino \ | |
| --volume "$(pwd)/test-data/trino/test-trino-config.properties:/etc/trino/config.properties" \ | |
| --volume "$(pwd)/test-data/trino/catalog/hive.properties:/etc/trino/catalog/hive.properties" \ | |
| trinodb/trino:468 | |
| echo "Starting Grafana..." | |
| docker run --rm --detach \ | |
| --name grafana \ | |
| --net trino \ | |
| --publish 3000:3000 \ | |
| --volume "$(pwd):/var/lib/grafana/plugins/trino" \ | |
| --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=trino-datasource" \ | |
| grafana/grafana:11.4.0 | |
| echo "Waiting for Trino to be ready..." | |
| while true; do | |
| if docker logs trino 2>&1 | grep -q '======== SERVER STARTED ========'; then | |
| echo "Trino is ready!" | |
| break | |
| fi | |
| echo "Waiting for Trino..." | |
| sleep 5 | |
| done | |
| echo "Preconfiguring trino..." | |
| docker exec trino trino --user admin --execute "GRANT admin TO USER grafana IN hive;" | |
| echo "Done." | |
| - name: End to end test | |
| run: | | |
| npx tsc -p tsconfig.json --noEmit | |
| npx playwright install | |
| npx playwright test |