Skip to content

Commit

Permalink
added beam_PreCommit_Java_Examples_Dataflow job
Browse files Browse the repository at this point in the history
added pull_request_target event

added required steps

improved if conditions

Bump github.com/aws/aws-sdk-go-v2/feature/s3/manager in /sdks (apache#27161)

Bumps [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2) from 1.11.67 to 1.11.70.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](aws/aws-sdk-go-v2@feature/s3/manager/v1.11.67...feature/s3/manager/v1.11.70)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Using capabilities instead of the container name to set use_single_core_per_container

Add Exception metadata to the data sampling protocol

Add apache#27000 as a known issue released in Beam 2.48.0 (apache#27235)

Python data sampling optimization  (apache#27157)

* Python optimization work

* Exception Sampling perf tests

* add better element sampling microbenchmark

* slowly move towards plumbing the samplers to the bundle processors

* cleaned up

* starting clean up and more testing

* finish tests

* fix unused data_sampler args and comments

* yapf, comments, and simplifications

* linter

* lint and mypy

* linter

* run tests

* address review comments

* run tests

---------

Co-authored-by: Sam Rohde <srohde@google.com>

Improve autoscaler throughput estimates and account for heartbeats (apache#27056)

The throughput estimates are improved by storing the estimates per partition (in StreamProgress) rather than per dofn instance. This required some refactoring of ThroughputEstimator/SizeEstimator. It now estimates throughput (per second) of the last ReadChangeStream request.

fix(typescript): Publish types correctly, don't publish tests

fix(typescript): added more exports

Basic error handling for yaml. (apache#27145)

Updates Python ExternalTransform to use the transform service when needed (apache#27228)

* Updates Python ExternalTransform to use the transform service when needed

* Addressing reviewer comments

* Fix yapf

* Fix lint

* Fix yapf

Add blog post for Managing Beam dependencies in Java

Vertex AI Remote Model Handler (apache#27091)

* Move WIP code to new branch at HEAD

* Add client-side throttling

* Various linting issues

* More linting, add dependency to setup.py

* Fix Docstring

* new flags, types, framework for eventual file read

* Route to correct tutorial

* Better flag name

* Align type hints, pylint cleanup

* Move off of constant, preprocess image

* Change to keyed version for output

* Yapf

* Pylint

* Clean up ToDo

* Add TODOs for file globs

* Fix cast, remove unneccessary assert

* whitespace

* More whitespace

* Import order

* More import ordering

* Amend comment

[Playground] [Frontend] Brand colors in Playground flutter_code_editor (apache#27218)

* brand colors in PG FCE

* link to website

* restart ci

* restart ci

---------

Co-authored-by: darkhan.nausharipov <darkhan.nausharipov@kzn.akvelon.com>

Bump go.mongodb.org/mongo-driver from 1.11.7 to 1.12.0 in /sdks (apache#27215)

Bumps [go.mongodb.org/mongo-driver](https://github.com/mongodb/mongo-go-driver) from 1.11.7 to 1.12.0.
- [Release notes](https://github.com/mongodb/mongo-go-driver/releases)
- [Commits](mongodb/mongo-go-driver@v1.11.7...v1.12.0)

---
updated-dependencies:
- dependency-name: go.mongodb.org/mongo-driver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

update readme with Beam Playground, Tour of Beam (apache#27243)

Co-authored-by: xqhu <xqhu@google.com>

runner image and arc changes (apache#27118)

* runner image and arc changes

* add state bucket comment in env file for reference

* add readme for manual image push and sync beam environment

---------

Co-authored-by: vdjerek <Vlado Djerek>

Fix whitespace (apache#27247)

[Tour of Beam] Learning content for "Final challenge" module (apache#26861)

* add final challenge

* correct examples

* changge

* correct golang

* correct example hint

* correct examples and add golang example

* delete whitespace

* delete whitespace

* add file tag

* correct final challenge

* fixing incorrect tags and names

* minor formatting

* fixing example formatting

* correct challenge

* correct whitespace

* change final-challenge-2

* correct imports

* fix splittable unit id

* formatting

* format change

* formatting

* fixing template

* temp fix of url

* backend urls fix

* restore backend urls

* change

* remove window

---------

Co-authored-by: mende1esmende1es <mende1esmende1es@gmail.cp>
Co-authored-by: Oleh Borysevych <oleg.borisevich@akvelon.com>

Bump transformers (apache#27108)

Bumps [transformers](https://github.com/huggingface/transformers) from 4.21.1 to 4.30.0.
- [Release notes](https://github.com/huggingface/transformers/releases)
- [Commits](huggingface/transformers@v4.21.1...v4.30.0)

---
updated-dependencies:
- dependency-name: transformers
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Code completion plugin: add plugin tests workflow (apache#27212)

* Code completion plugin: add plugin tests workflow

* Testing changing directory in code_completion_plugin_tests.yml

* Making gradlew executable

* Fix gradlew intellij plugin import

* change gradlew premissions

* code-completion-plugin: fixing GA tests workflow

* Revert "change gradlew premissions"

This reverts commit ee396be.

* Revert "code-completion-plugin: fixing GA tests workflow"

This reverts commit 9baa351.

* fix code_completion_plugin_tests.yml

* Making gradlew executable

* code-completion-plugin-fix intellij plugin version in build.gradle.kts

* code-completion-plugin: change java version (17 -> 11) in code_completion_plugin_tests.yml

* test code completion plugin CI

* Add env vars to code_completion_plugin_test.yml

* code-completion-plugin: test ci

* code-completion-plugin: clone intellij-community to CI runner

---------

Co-authored-by: Pablo <pabloem@users.noreply.github.com>
Co-authored-by: Pablo E <pabloem@apache.org>

add job rerun action (apache#27210)

* add job rerun action

* Update .github/actions/rerun-job-action/action.yml

Typo

Co-authored-by: Danny McCormick <dannymccormick@google.com>

* header and a comment explaining the logic for going into re-run flow

* deduplicate API calls

* added some explanation within the action file

* Update .github/actions/rerun-job-action/action.yml

Typo

Co-authored-by: Danny McCormick <dannymccormick@google.com>

---------

Co-authored-by: vdjerek <Vlado Djerek>
Co-authored-by: Danny McCormick <dannymccormick@google.com>

Code completion plugin: Add Java SDK Transform Completions (Hard Coded) (apache#27168)

* [Code Completion Plugin] Define Element Pattern for java sdk

* Code Completion Plugin: Add java sdk transform completions

* Verifying that tests are running as expected :) Sorry!

* Update BeamCompletionContributorTestCase.java

---------

Co-authored-by: Pablo <pabloem@users.noreply.github.com>

[Website] add hsbc case study (apache#27200)

[Tour of Beam] add work example (apache#27080)

* add work example

* correct

* correct tags for bigquery examples

* correct read-query

* correct read-query tag

* correct imports

* remove package

* correct

* fixed example name

---------

Co-authored-by: mende1esmende1es <mende1esmende1es@gmail.cp>
Co-authored-by: Oleh Borysevych <oleg.borisevich@akvelon.com>

Remove py37 references (apache#27252)

Handling issue where keystore file is empty for MongoDB SSL (apache#27250)

Bump worker image dependency (apache#27253)

[apache#22737] Add line about timer support for Go (apache#27263)

Bump actions/checkout from 2 to 3 (apache#27259)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add Tour of Beam Page (apache#27244)

* add tour of beam page to redirect.

* add tour of beam page to redirect.

* add tour of beam page to redirect.
  • Loading branch information
andreydevyatkin committed Jul 7, 2023
1 parent c79b03c commit 137c79f
Show file tree
Hide file tree
Showing 125 changed files with 37,628 additions and 1,217 deletions.
113 changes: 113 additions & 0 deletions .github/actions/rerun-job-action/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# 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.


#Action used to trigger a failed check re-run within a PR using a comment. Add this action to your workflow with an if condition
#to check if the comment is present
#If the check is failed this will trigger it again. If its not failed a new instance of workflow will run which will not show in the status box or checks tab in the PR and can be found in the actions tab https://github.com/apache/beam/actions

name: "Rerun Job Action"
description: Re-runs a job that is attached to the PR as Check Run
inputs:
pull_request_url:
description: "The URL of the PR"
required: true
github_repository:
description: "The GitHub repository"
required: true
github_token:
description: "The GitHub token"
required: true
github_job:
description: "The GitHub job"
required: true
github_current_run_id:
description: "The GitHub current run id. Not the same that is fetched in this action"
required: true


runs:
using: composite
steps:
- name: Get Last Commit SHA
shell: bash
run: |
URL=${{inputs.pull_request_url}}/commits
PRSHA=$(curl \
-H 'Authorization: Bearer ${{inputs.github_token}}' \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-s $URL | jq -r '.[-1].sha' )
echo prsha=$PRSHA >> $GITHUB_ENV
- name: Get Status and Conclusion for PR Job
shell: bash
run: |
URL="${{github.api_url}}/repos/${{inputs.github_repository}}/commits/${{env.prsha}}/check-runs"
read -r STATUS CONCLUSION CHECK_SUITE_ID<<< $(curl \
-H 'Authorization: Bearer ${{inputs.github_token}}' \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-s $URL | jq -r '.check_runs | .[] | select(.name=="${{inputs.github_job}}") | "\(.status) \(.conclusion) \(.check_suite.id)"')
echo status=$STATUS >> $GITHUB_ENV
echo conclusion=$CONCLUSION >> $GITHUB_ENV
echo check_suite_id=$CHECK_SUITE_ID >> $GITHUB_ENV
- name: Enable Rerun
if: ${{env.status == 'completed' && (env.conclusion == 'success' || env.conclusion == 'skipped')}}
shell: bash
run: echo rerun=false >> $GITHUB_ENV

- name: Get Run ID
if: ${{env.rerun != 'false' }}
shell: bash
run: |
URL="${{github.api_url}}/repos/${{inputs.github_repository}}/actions/runs?check_suite_id=${{env.check_suite_id}}"
RUN_ID=$(curl \
-H 'Authorization: Bearer ${{inputs.github_token}}' \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-s $URL | jq -r '.workflow_runs | .[0] | .id')
echo run_id=$RUN_ID >> $GITHUB_ENV
- name: Get Job ID
if: ${{env.rerun != 'false' }}
shell: bash
run: |
URL="${{github.api_url}}/repos/${{inputs.github_repository}}/actions/runs/${{env.run_id}}/jobs"
JOB_ID=$(curl \
-H 'Authorization: Bearer ${{inputs.github_token}}' \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-s $URL | jq -r '.jobs | .[] | select(.name=="${{inputs.github_job}}") | .id ')
echo job_id=$JOB_ID >> $GITHUB_ENV
- name: Trigger Re-run
if: ${{env.rerun != 'false' }}
shell: bash
run: |
URL="${{github.api_url}}/repos/${{inputs.github_repository}}/actions/jobs/${{env.job_id}}/rerun"
curl -X POST \
-H 'Authorization: Bearer ${{inputs.github_token}}' \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-s $URL
- name: Exit rest of the run
if: ${{env.rerun != 'false' }}
shell: bash
run: |
gh run cancel ${{ inputs.github_current_run_id }}
gh run watch ${{ inputs.github_current_run_id }}
env:
GITHUB_TOKEN: ${{ inputs.github_token }}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ spec:
- "self-hosted"
env: []
resources:
limits:
cpu: "4.0"
memory: "8Gi"
# limits:
# cpu: "4.0"
# memory: "8Gi"
requests:
cpu: "500m"
memory: "500Mi"
11 changes: 6 additions & 5 deletions .github/gh-actions-self-hosted-runners/arc/environments/beam.env
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,16 @@ zone = "us-west1-b"
min_main_node_count = "1"
max_main_node_count = "5"
environment = "beam"
ingress_domain = "runners.example.com"
ingress_domain = "action.beam.apache.org"
organization = "apache"
repository = "beam"
github_app_id_secret_name = "gh-app_id"
github_app_install_id_secret_name = "gh-app_installation_id"
github_private_key_secret_name = "gh-pem_key"
deploy_webhook = "false"
max_main_replicas = "40"
deploy_webhook = "true"
max_main_replicas = "50"
min_main_replicas = "5"
webhook_scaling = "false"
webhook_scaling = "true"
runner_group = "beam"
machine_type = "e2-standard-16"
machine_type = "e2-standard-16"
#state_bucket_name = "beam-arc-state"
1 change: 0 additions & 1 deletion .github/gh-actions-self-hosted-runners/arc/gke.tf
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ resource "google_container_node_pool" "actions-runner-pool" {
}
node_config {
machine_type = var.machine_type
service_account = google_service_account.actions_service_account.email
oauth_scopes = [
"https://www.googleapis.com/auth/cloud-platform"
]
Expand Down
7 changes: 0 additions & 7 deletions .github/gh-actions-self-hosted-runners/arc/iam.tf
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,6 @@
# specific language governing permissions and limitations
# under the License.
#

resource "google_service_account" "actions_service_account" {
account_id = "${var.environment}-runner-gke-sa"
display_name = "${var.environment}-runner-gke-sa"
}


data "google_client_config" "provider" {}

data "google_client_openid_userinfo" "provider_identity" {
Expand Down
52 changes: 52 additions & 0 deletions .github/gh-actions-self-hosted-runners/arc/images/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#
# 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.
#


FROM ghcr.io/actions-runner-controller/actions-runner-controller/actions-runner:ubuntu-20.04

USER root
#Install Node
RUN curl -OL https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz && \
tar -C /usr/local -xf node-v18.16.0-linux-x64.tar.xz && \
rm node-v18.16.0-linux-x64.tar.xz && \
mv /usr/local/node-v18.16.0-linux-x64 /usr/local/node
ENV PATH="${PATH}:/usr/local/node/bin"
#Install Go
ARG go_version=1.20.4
RUN curl -OL https://go.dev/dl/go${go_version}.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go${go_version}.linux-amd64.tar.gz && \
rm go${go_version}.linux-amd64.tar.gz
ENV PATH="${PATH}:/usr/local/go/bin"
#Install Java
RUN curl -OL https://cdn.azul.com/zulu/bin/zulu8.70.0.23-ca-jdk8.0.372-linux_x64.tar.gz && \
tar -C /usr/local -xzf zulu8.70.0.23-ca-jdk8.0.372-linux_x64.tar.gz && \
rm zulu8.70.0.23-ca-jdk8.0.372-linux_x64.tar.gz && \
mv /usr/local/zulu8.70.0.23-ca-jdk8.0.372-linux_x64 /usr/local/java
ENV PATH="${PATH}:/usr/local/java/bin"
#Install Gradle
RUN curl -OL https://services.gradle.org/distributions/gradle-7.3.3-bin.zip && \
unzip gradle-7.3.3-bin.zip && \
rm gradle-7.3.3-bin.zip && \
mv gradle-7.3.3 /usr/local/gradle
ENV PATH="${PATH}:/usr/local/gradle/bin"


# Needed to transfer path addtitions to runner environment
RUN echo PATH=$PATH >> /runnertmp/.env
USER runner
36 changes: 36 additions & 0 deletions .github/gh-actions-self-hosted-runners/arc/images/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!--
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.
-->
# Manual build and push

First set a tag you want to use:
```
export RUNNER_IMAGE_TAG=some_tag
```
After which you run the build command:
```
docker build -t us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:$RUNNER_IMAGE_TAG -t us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:$(git rev-parse --short HEAD) .
```
This builds and tags the image with both the Git SHA and desired tag set.

Authenticate to the docker repository in GCP with:
```
gcloud auth configure-docker us-central1-docker.pkg.dev
```
docker push us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:$RUNNER_IMAGE_TAG
docker push us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:$(git rev-parse --short HEAD)
```
97 changes: 97 additions & 0 deletions .github/workflows/beam_PreCommit_Java_Examples_Dataflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# 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 Java Examples Dataflow

on:
push:
tags: ['v*']
branches: ['master', 'release-*']
paths: ['model/**', 'sdks/java/**', 'runners/google-cloud-dataflow-java/**', 'examples/java/**', 'examples/kotlin/**', 'release/**']
pull_request_target:
branches: ['master', 'release-*']
paths: ['model/**', 'sdks/java/**', 'runners/google-cloud-dataflow-java/**', 'examples/java/**', 'examples/kotlin/**', 'release/**']
issue_comment:
types: [created]
schedule:
- cron: '* */6 * * *'

permissions: read-all
jobs:
check_gcp_variables:
timeout-minutes: 5
name: check_gcp_variables
runs-on: [self-hosted, ubuntu-20.04]
outputs:
gcp-variables-set: ${{ steps.check_gcp_variables.outputs.gcp-variables-set }}
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Check are GCP variables set
run: "./scripts/ci/ci_check_are_gcp_variables_set.sh"
id: check_gcp_variables
env:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
GCP_SA_EMAIL: ${{ secrets.GCP_SA_EMAIL }}
GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
GCP_TESTING_BUCKET: ${{ secrets.GCP_TESTING_BUCKET }}
GCP_REGION: "not-needed-here"
GCP_PYTHON_WHEELS_BUCKET: "not-needed-here"

beam_PreCommit_Java_Examples_Dataflow:
name: beam_PreCommit_Java_Examples_Dataflow
needs:
- check_gcp_variables
runs-on: [self-hosted, ubuntu-20.04]
if: |
github.event_name == 'push' ||
github.event_name == 'pull_request_target' ||
github.event_name == 'schedule' ||
github.event.comment.body == 'Run Java_Examples_Dataflow PreCommit'
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup self-hosted
uses: ./.github/actions/setup-self-hosted-action
with:
requires-py-38: false
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 javaExamplesDataflowPrecommit script
run: ./gradlew :javaExamplesDataflowPrecommit
-PdisableSpotlessCheck=true
-PdisableCheckStyle=true
- name: Upload test report
uses: actions/upload-artifact@v3
with:
name: java-code-coverage-report
path: "**/build/test-results/**/*.xml"
Loading

0 comments on commit 137c79f

Please sign in to comment.