本文へ移動
cccskills
無料GitHub で公開

ci-cd

Guides understanding and working with Apache Beam's CI/CD system using GitHub Actions. Use when debugging CI failures, understanding test workflows, or modifying CI configuration.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md5.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

CI/CD in Apache Beam

Overview

Apache Beam uses GitHub Actions for CI/CD. Workflows are located in .github/workflows/.

Workflow Types

PreCommit Workflows

  • Run on PRs and merges
  • Validate code changes before merge
  • Naming: beam_PreCommit_*.yml

PostCommit Workflows

  • Run after merge and on schedule
  • More comprehensive testing
  • Naming: beam_PostCommit_*.yml

Scheduled Workflows

  • Run nightly on master
  • Check for external dependency impacts
  • Tag master with nightly-master

Key Workflows

PreCommit

WorkflowDescription
beam_PreCommit_Java.ymlJava build and tests
beam_PreCommit_Python.ymlPython tests
beam_PreCommit_Go.ymlGo tests
beam_PreCommit_RAT.ymlLicense header checks
beam_PreCommit_Spotless.ymlCode formatting

PostCommit - Java

WorkflowDescription
beam_PostCommit_Java.ymlFull Java test suite
beam_PostCommit_Java_ValidatesRunner_*.ymlRunner validation tests
beam_PostCommit_Java_Examples_*.ymlExample pipeline tests

PostCommit - Python

WorkflowDescription
beam_PostCommit_Python.ymlFull Python test suite
beam_PostCommit_Python_ValidatesRunner_*.ymlRunner validation
beam_PostCommit_Python_Examples_*.ymlExamples

Load & Performance Tests

WorkflowDescription
beam_LoadTests_*.ymlLoad testing
beam_PerformanceTests_*.ymlI/O performance

Triggering Tests

Automatic

  • PRs trigger PreCommit tests
  • Merges trigger PostCommit tests

Triggering Specific Workflows

Use trigger files to run specific workflows.

Workflow Dispatch

Most workflows support manual triggering via GitHub UI.

Understanding Test Results

Finding Logs

  1. Go to PR → Checks tab
  2. Click on failed workflow
  3. Expand failed job
  4. View step logs

Common Failure Patterns

Flaky Tests

  • Random failures unrelated to change
  • Solution: Use trigger files to re-run the specific workflow.

Timeout

  • Increase timeout in workflow if justified
  • Or optimize test

Resource Exhaustion

  • GCP quota issues
  • Check project settings

GCP Credentials

Workflows requiring GCP access use these secrets:

  • GCP_PROJECT_ID - Project ID (e.g., apache-beam-testing)
  • GCP_REGION - Region (e.g., us-central1)
  • GCP_TESTING_BUCKET - Temp storage bucket
  • GCP_PYTHON_WHEELS_BUCKET - Python wheels bucket
  • GCP_SA_EMAIL - Service account email
  • GCP_SA_KEY - Base64-encoded service account key

Required IAM roles:

  • Storage Admin
  • Dataflow Admin
  • Artifact Registry Writer
  • BigQuery Data Editor
  • Service Account User

Self-hosted vs GitHub-hosted Runners

Self-hosted (majority of workflows)

  • Pre-configured with dependencies
  • GCP credentials pre-configured
  • Naming: beam_*.yml

GitHub-hosted

  • Used for cross-platform testing (Linux, macOS, Windows)
  • May need explicit credential setup

Workflow Structure

name: Workflow Name
on:
  push:
    branches: [master]
  pull_request:
    branches: [master]
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

jobs:
  build:
    runs-on: [self-hosted, ...]
    steps:
      - uses: actions/checkout@v4
      - name: Run Gradle
        run: ./gradlew :task:name

Local Debugging

Run Same Commands as CI

Check workflow file's run commands:

./gradlew :sdks:java:core:test
./gradlew :sdks:python:test

Common Issues

  • Clean gradle cache: rm -rf ~/.gradle .gradle
  • Remove build directory: rm -rf build
  • Check Java version matches CI

Snapshot Builds

Locations

Release Workflows

WorkflowPurpose
cut_release_branch.ymlCreate release branch
build_release_candidate.ymlBuild RC
finalize_release.ymlFinalize release
publish_github_release_notes.ymlPublish notes

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Guide on how to add and propagate new metadata fields in Apache Beam's WindowedValue, extending protos, windmill persistence, and runner interfaces to avoid metadata loss.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

Explains core Apache Beam programming model concepts including PCollections, PTransforms, Pipelines, and Runners. Use when learning Beam fundamentals or explaining pipeline concepts.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

Guides the contribution workflow for Apache Beam, including creating PRs, issue management, code review process, release cycles, and rigorous evaluation rules for high-risk core component changes. Use when contributing code, creating PRs, or modifying core Beam components.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

End-to-end guide on developing new Apache Beam I/O connectors correctly, including core IO transforms, SchemaTransforms, URN proto definitions, Managed API integration, cross-language expansion service, and testing.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

Guides understanding and using the Gradle build system in Apache Beam. Use when building projects, understanding dependencies, or troubleshooting build issues.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

Guides development and usage of I/O connectors in Apache Beam. Use when working with I/O connectors, creating new connectors, or debugging data source/sink issues.

日本語の概要は準備中です。原文の説明を表示しています。

apache/beam8,6802026年10月10日 更新

apache のスキルをすべて見る

このスキルの問題を報告する