bf2343b7e4
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Waiting to run
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Blocked by required conditions
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Waiting to run
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Blocked by required conditions
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Waiting to run
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Blocked by required conditions
Java Checkstyle / java-checkstyle (push) Waiting to run
Maven Collate Tests / maven-collate-ci (push) Waiting to run
OpenMetadata Service Unit Tests / Detect Changes (push) Waiting to run
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Blocked by required conditions
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Blocked by required conditions
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Blocked by required conditions
Publish Package to Maven Central Repository / publish-maven-packages (push) Waiting to run
96 lines
3.1 KiB
Bash
Executable File
96 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2021 Collate
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
echo "=== Setting up OpenMetadata Development Environment ==="
|
|
|
|
cd "$REPO_ROOT"
|
|
|
|
# Ensure ANTLR4 is available
|
|
echo "Setting up ANTLR4..."
|
|
# Ensure user-local binaries are available for this script and child processes.
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
|
|
ANTLR_VERSION=4.9.2
|
|
ANTLR_JAR_DIR="$HOME/.local/lib"
|
|
ANTLR_JAR_PATH="$ANTLR_JAR_DIR/antlr-${ANTLR_VERSION}-complete.jar"
|
|
ANTLR_BIN_PATH="$HOME/.local/bin/antlr4"
|
|
|
|
CURRENT_ANTLR_VERSION=""
|
|
if command -v antlr4 &> /dev/null; then
|
|
CURRENT_ANTLR_VERSION="$(antlr4 -version 2>&1 | awk '{print $NF}')"
|
|
fi
|
|
|
|
if [ "$CURRENT_ANTLR_VERSION" != "$ANTLR_VERSION" ]; then
|
|
if ! command -v java &> /dev/null; then
|
|
echo "ERROR: Java runtime is required to run ANTLR."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$HOME/.local/bin" "$ANTLR_JAR_DIR"
|
|
curl -fsSL "https://www.antlr.org/download/antlr-${ANTLR_VERSION}-complete.jar" -o "$ANTLR_JAR_PATH"
|
|
|
|
cat > "$ANTLR_BIN_PATH" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
exec java -jar "$HOME/.local/lib/antlr-4.9.2-complete.jar" "$@"
|
|
EOF
|
|
|
|
chmod 755 "$ANTLR_BIN_PATH"
|
|
fi
|
|
|
|
# Install frontend dependencies
|
|
echo "Installing frontend dependencies..."
|
|
cd openmetadata-ui/src/main/resources/ui
|
|
yarn install --frozen-lockfile
|
|
cd -
|
|
|
|
# Set up Python virtual environment for ingestion
|
|
echo "Setting up Python ingestion environment..."
|
|
if command -v python3 &> /dev/null; then
|
|
PYTHON_BIN="$(command -v python3)"
|
|
elif command -v python &> /dev/null; then
|
|
PYTHON_BIN="$(command -v python)"
|
|
else
|
|
echo "ERROR: Python is required but was not found in PATH."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Running python version: $($PYTHON_BIN --version)"
|
|
|
|
# Always use a dedicated venv in the devcontainer to avoid overwriting the host .venv
|
|
# (which is volume-mounted and likely contains platform-incompatible binaries).
|
|
VENV_DIR=".venv-devcontainer"
|
|
|
|
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
|
source "$VENV_DIR/bin/activate"
|
|
python -m pip install --upgrade pip
|
|
|
|
# Run Make targets from repo root to ensure scripts/ and ingestion/ paths resolve correctly
|
|
make install_dev generate
|
|
|
|
# Verify prerequisites
|
|
echo "Verifying prerequisites..."
|
|
make prerequisites
|
|
|
|
echo "=== Development environment ready ==="
|
|
echo ""
|
|
echo "Quick start commands:"
|
|
echo " Backend: mvn clean package -DskipTests"
|
|
echo " Frontend: cd openmetadata-ui/src/main/resources/ui && yarn start"
|
|
echo " Ingestion: source $VENV_DIR/bin/activate && cd ingestion"
|
|
echo " Format: mvn spotless:apply (Java) | yarn lint:fix (Frontend)"
|