name: check-outdated-dependencies on: push: # This will trigger the action when a pull request is opened or updated. branches: - 'release/**' # This will trigger the action when any branch starting with "release/" is created. workflow_dispatch: # Allow manual triggering if needed. jobs: backend: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - uses: ./.github/actions/setup_build_env with: python-version: '3.9' run-poetry-install: true create-venv-at-path: .venv - name: Check outdated backend dependencies run: | outdated=$(poetry show -oT) echo "Outdated:" echo "$outdated" filtered_outdated=$(echo "$outdated" | grep -vE 'pyright|ruff' || true) if [ ! -z "$filtered_outdated" ]; then echo "Outdated dependencies found:" echo "$filtered_outdated" exit 1 else echo "All dependencies are up to date. (pyright and ruff are ignored)" fi frontend: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - uses: ./.github/actions/setup_build_env with: python-version: '3.10.11' run-poetry-install: true create-venv-at-path: .venv - name: Clone Reflex Website Repo uses: actions/checkout@v4 with: repository: reflex-dev/reflex-web ref: main path: reflex-web - name: Install Requirements for reflex-web working-directory: ./reflex-web run: poetry run uv pip install -r requirements.txt - name: Install additional dependencies for DB access run: poetry run uv pip install psycopg - name: Init Website for reflex-web working-directory: ./reflex-web run: poetry run reflex init - name: Run Website and Check for errors run: | poetry run bash scripts/integration.sh ./reflex-web dev - name: Check outdated frontend dependencies working-directory: ./reflex-web/.web run: | raw_outdated=$(/home/runner/.local/share/reflex/bun/bin/bun outdated) outdated=$(echo "$raw_outdated" | grep -vE '\|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\|' || true) echo "Outdated:" echo "$outdated" # Ignore 3rd party dependencies that are not updated. filtered_outdated=$(echo "$outdated" | grep -vE 'Package|@chakra-ui|lucide-react|@splinetool/runtime|ag-grid-react|framer-motion|react-markdown|remark-math|remark-gfm|rehype-katex|rehype-raw|remark-unwrap-images' || true) no_extra=$(echo "$filtered_outdated" | grep -vE '\|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-' || true) if [ ! -z "$no_extra" ]; then echo "Outdated dependencies found:" echo "$filtered_outdated" exit 1 else echo "All dependencies are up to date. (3rd party packages are ignored)" fi