This is an automated email from the ASF dual-hosted git repository.

jrmccluskey pushed a commit to branch pyreflyAction
in repository https://gitbox.apache.org/repos/asf/beam.git

commit 6640d88fef67334fbe8d509daa9ee4f5807d0c73
Author: jrmccluskey <[email protected]>
AuthorDate: Tue Mar 17 16:33:28 2026 -0400

    Add Pyrefly Check PreCommit
---
 .../workflows/beam_PreCommit_Python_Pyrefly.yml    | 84 ++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/.github/workflows/beam_PreCommit_Python_Pyrefly.yml 
b/.github/workflows/beam_PreCommit_Python_Pyrefly.yml
new file mode 100644
index 00000000000..866a41b1c7f
--- /dev/null
+++ b/.github/workflows/beam_PreCommit_Python_Pyrefly.yml
@@ -0,0 +1,84 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+name: PreCommit Python Pyrefly
+on:
+  pull_request_target:
+    branches: [ "master", "release-*" ]
+    paths: ["sdks/python/**","release/**", 'release/trigger_all_tests.json', 
'.github/trigger_files/beam_PreCommit_PythonLint.json']
+  issue_comment:
+    types: [created]
+  push:
+    tags: ['v*']
+    branches: ['master', 'release-*']
+    paths: 
["sdks/python/**","release/**",".github/workflows/beam_PreCommit_PythonLint.yml"]
+  schedule:
+    - cron: '0 3/6 * * *'
+  workflow_dispatch:
+
+#Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
+permissions:
+  actions: write
+  pull-requests: read
+  checks: read
+  contents: read
+  deployments: read
+  id-token: none
+  issues: read
+  discussions: read
+  packages: read
+  pages: read
+  repository-projects: read
+  security-events: read
+  statuses: read
+
+# This allows a subsequently queued workflow run to interrupt previous runs
+concurrency:
+  group: '${{ github.workflow }} @ ${{ github.event.issue.number || 
github.event.pull_request.head.label || github.sha || github.head_ref || 
github.ref }}-${{ github.event.schedule || github.event.comment.id || 
github.event.sender.login }}'
+  cancel-in-progress: true
+
+env:
+  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+  GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
+  GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
+
+jobs:
+  typecheck:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Check out code
+        uses: actions/checkout@v4
+
+      - name: Set up Python
+        uses: actions/setup-python@v5
+        with:
+          python-version: '3.11'
+
+      # Install Python dependencies and create environment
+      - name: Install dependencies and run type checking
+        working-directory: ./sdks/python
+        run: |
+          python -m venv .venv
+          source .venv/bin/activate
+          python -m pip install --upgrade pip
+          pip install .[gcp,test]
+
+      - name: Install Pyrefly
+        run: pip install pyrefly==0.54.0
+
+      - name: Run Pyrefly Type Checker
+        working-directory: ./sdks/python
+        run: pyrefly check
\ No newline at end of file

Reply via email to