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

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


The following commit(s) were added to refs/heads/master by this push:
     new cc410cae08c Github Workflow Replacement for Jenkins Job, 
beam_PreCommit_Website_Stage_GCS (Cron, Commit, Phrase) (#27261)
cc410cae08c is described below

commit cc410cae08c7affa1af88dfefeb18768705c605a
Author: magicgoody <131876064+magicgo...@users.noreply.github.com>
AuthorDate: Fri Jul 28 22:36:29 2023 +0600

    Github Workflow Replacement for Jenkins Job, 
beam_PreCommit_Website_Stage_GCS (Cron, Commit, Phrase) (#27261)
    
    * workflow added
    
    * pull request target
    
    * update
    
    * permissions add, website gcs
    
    * workflow and readme update
    
    * auth gcp
    
    * setup cloud sdk
    
    * name and path fix
    
    * fix trigger
    
    * spaces fix
    
    * moved events
    
    * Add website link to the summary
    
    * readme name fix
    
    * link generation process was fixed
    
    * if event added
    
    * new updates
    
    * code fix
---
 .github/workflows/README.md                        |   1 +
 .../workflows/beam_PreCommit_Website_Stage_GCS.yml | 116 +++++++++++++++++++++
 2 files changed, 117 insertions(+)

diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 8cc764362cc..a980c427007 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -131,3 +131,4 @@ Please note that jobs with matrix need to have matrix 
element in the comment. Ex
 | [ PreCommit Python 
Integration](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Python_Integration.yml)
 | ['3.8','3.11'] | `Run Python_Integration PreCommit (matrix_element)` | 
[![.github/workflows/beam_PreCommit_Python_Integration.yml](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Python_Integration.yml/badge.svg?event=schedule)](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Python_Integration.yml)
 |
 | [ RAT PreCommit 
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_RAT.yml) | 
N/A | `Run RAT PreCommit` | 
[![.github/workflows/beam_PreCommit_RAT.yml](https://github.com/apache/beam/actions/workflows/beam_PreCommit_RAT.yml/badge.svg?event=schedule)](https://github.com/apache/beam/actions/workflows/beam_PreCommit_RAT.yml)
 |
 | [ PreCommit SQL Java11 
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java11.yml)
 | N/A |`Run SQL_Java11 PreCommit`| [![PreCommit SQL 
Java11](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java11.yml/badge.svg?event=schedule)](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java11.yml)
 |
+| [ PreCommit Website Stage GCS 
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Website_Stage_GCS.yml)
 | N/A |`Run Website_Stage_GCS PreCommit`| [![PreCommit Website Stage 
GCS](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Website_Stage_GCS.yml/badge.svg?event=schedule)](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Website_Stage_GCS.yml)
 |
diff --git a/.github/workflows/beam_PreCommit_Website_Stage_GCS.yml 
b/.github/workflows/beam_PreCommit_Website_Stage_GCS.yml
new file mode 100644
index 00000000000..665a5cdaac1
--- /dev/null
+++ b/.github/workflows/beam_PreCommit_Website_Stage_GCS.yml
@@ -0,0 +1,116 @@
+# 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 Website Stage GCS  
+
+on:
+  push:
+    tags: ['v*']
+    branches: ['master', 'release-*']
+    paths: 
['website/**','.github/workflows/beam_PreCommit_Website_Stage_GCS.yml']
+  pull_request_target:
+    branches: ['master', 'release-*']
+    paths: ['website/**']
+  issue_comment:
+    types: [created]
+  schedule:
+    - cron: '0 */6 * * *'
+  workflow_dispatch:
+
+# This allows a subsequently queued workflow run to interrupt previous runs
+concurrency:
+  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || 
github.sha || github.head_ref || github.ref }}-${{ github.event.sender.login 
}}-${{ github.event.schedule }}'
+  cancel-in-progress: true
+
+#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
+
+env:
+  gcsbucket: apache-beam-website-pull-requests  
+  ghprbPullId:
+
+jobs:
+  beam_PreCommit_Website_Stage_GCS:
+    timeout-minutes: 120
+    if: |
+      github.event_name == 'push' || 
+      github.event_name == 'pull_request_target' || 
+      github.event_name == 'schedule' ||
+      github.event.comment.body == 'Run Website_Stage_GCS PreCommit' 
+    runs-on: [self-hosted, ubuntu-20.04, main]
+    name: beam_PreCommit_Website_Stage_GCS (Run Website_Stage_GCS PreCommit)
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v3
+        with:
+          ref: ${{ github.event.pull_request.head.sha }}
+      - name: Rerun on comment
+        if: github.event.comment.body == 'Run Website_Stage_GCS PreCommit'
+        uses: ./.github/actions/rerun-job-action
+        with:
+          pull_request_url: ${{ github.event.issue.pull_request.url }}
+          github_repository: ${{ github.repository }}
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          github_job: ${{ github.job }}
+          github_current_run_id: ${{ github.run_id }}
+      - name: Find Current Pull Request
+        uses: jwalton/gh-find-current-pr@v1
+        id: findPr
+        with:
+          state: open
+      - name: Echo PR number
+        run: echo "ghprbPullId=${{ steps.findPr.outputs.pr || 
github.event.issue.number }}" >> $GITHUB_ENV
+      - name: Setup self-hosted
+        uses: ./.github/actions/setup-self-hosted-action
+        with:
+          requires-py-39: false
+          requires-go: false
+      - name: Setup Gradle
+        uses: gradle/gradle-build-action@v2
+        with:
+          cache-read-only: false
+      - name: Authenticate on GCP
+        uses: google-github-actions/setup-gcloud@v0
+        with:
+          service_account_email: ${{ secrets.GCP_SA_EMAIL }}
+          service_account_key: ${{ secrets.GCP_SA_KEY }}
+          project_id: ${{ secrets.GCP_PROJECT_ID }}
+          export_default_credentials: true
+      - name: Run website_stageWebsite script
+        uses: ./.github/actions/gradle-command-self-hosted-action
+        with:
+          gradle-command: :website:stageWebsite
+          arguments: -PwebsiteBucket=$gcsbucket
+      - name: Add website link to the summary if pr
+        if: env.ghprbPullId != null
+        run: echo "Website published to 
http://$gcsbucket.storage.googleapis.com/$ghprbPullId/index.html"; >> 
$GITHUB_STEP_SUMMARY
+      - name: Add website link to the summary
+        if: env.ghprbPullId == null
+        run: |
+          USERNAME="$(whoami)"
+          echo "Website published to 
http://$gcsbucket.storage.googleapis.com/$USERNAME-${GITHUB_REF##*/}/index.html";
 >> $GITHUB_STEP_SUMMARY
\ No newline at end of file

Reply via email to