browser-use MCP Server

by williamvd4
Verified
name: CI on: push: branches: [main] pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true env: PYTHON_VERSION: "3.13" REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} jobs: determine_changes: name: "Determine changes" runs-on: ubuntu-latest outputs: # Flag that is raised when any code is changed code: ${{ steps.changed.outputs.code_any_changed }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: tj-actions/changed-files@v45 id: changed with: files_yaml: | code: - "**/*" - "!docs/**/*" - "!mkdocs.*.yml" - "!**/*.md" - "!bin/**" - "!assets/**" - "!dist/**" # Generated markdown and JSON files are checked during test runs - "docs/reference/cli.md" - "docs/reference/settings.md" - "docs/configuration/environment.md" - "uv.schema.json" lint: timeout-minutes: 10 name: "lint" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: 3.13 - name: "Install uv" uses: astral-sh/setup-uv@v5 - name: "Prettier" run: | npx prettier --check "**/*.{json5,yaml,yml}" npx prettier --prose-wrap always --check "**/*.md" - name: "Python format" run: uvx ruff format --diff . - name: "Python lint" run: uvx ruff check . - name: "Validate project metadata" run: uvx --from 'validate-pyproject[all,store]' validate-pyproject pyproject.toml build-and-publish: runs-on: ubuntu-latest permissions: contents: read packages: write # attestations: write id-token: write steps: - name: Checkout repository uses: actions/checkout@v4 - name: Log in to the Container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image id: push uses: docker/build-push-action@v6 with: context: ./ file: ./Dockerfile platforms: linux/amd64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | VNC_PASSWORD=${{ secrets.VNC_PASSWORD }} cache-from: type=gha cache-to: type=gha,mode=max