Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
120 changes: 0 additions & 120 deletions .buildkite/pipeline.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .github/dco.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
require:
members: false
File renamed without changes.
105 changes: 105 additions & 0 deletions .github/workflows/ci-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: CI Checks
on:
push:
pull_request:

jobs:
lint-check:
name: Lint Check
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # get full history for branch checking

- name: Run lint check
run: docker compose -f docker/github_actions/docker-compose.yml run unit-test-test-service bash -c ".github/scripts/lint.sh"

unit-test-with-test-service:
name: Unit Test with Test Service
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # get full history for branch checking

- name: Run unit test with test service
uses: nick-fields/retry@v3
with:
max_attempts: 3
timeout_minutes: 30
command: |
docker compose -f docker/github_actions/docker-compose.yml run unit-test-test-service bash -c "./gradlew --no-daemon test jacocoTestReport && .github/scripts/coverage_metadata.sh build/reports/metadata.txt"

- name: Upload coverage artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-with-test-service-coverage
path: |
build/reports/tests/test/**/*
build/reports/jacoco/test/jacocoTestReport.xml
build/reports/metadata.txt
include-hidden-files: true

unit-test-with-docker-service-sticky-on:
name: Unit Test with Docker Service (Sticky On)
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # get full history for branch checking

- name: Run unit test with docker service (sticky on)
uses: nick-fields/retry@v3
with:
max_attempts: 3
timeout_minutes: 50
command: |
docker compose -f docker/github_actions/docker-compose.yml run unit-test-docker-sticky-on bash -c "./gradlew --no-daemon test"

- name: Upload coverage artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-with-docker-service-sticky-on-coverage
path: |
build/reports/tests/test/**/*
include-hidden-files: true

unit-test-with-docker-service-sticky-off:
name: Unit Test with Docker Service (Sticky Off)
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # get full history for branch checking

- name: Run unit test with docker service (sticky off)
uses: nick-fields/retry@v3
with:
max_attempts: 3
timeout_minutes: 50
command: |
docker compose -f docker/github_actions/docker-compose.yml run unit-test-docker-sticky-off bash -c "./gradlew --no-daemon test"

- name: Upload coverage artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-with-docker-service-sticky-off-coverage
path: |
build/reports/tests/test/**/*
include-hidden-files: true
2 changes: 1 addition & 1 deletion .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
with:
submodules: 'true'
- name: Install dependencies, run tests, and collect coverage
run: docker compose -f docker/buildkite/docker-compose.yaml run unit-test-test-service
run: docker compose -f docker/github_actions/docker-compose.yml run unit-test-test-service
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
Expand Down
18 changes: 1 addition & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,6 @@ jobs:
java-version: '11'
distribution: 'temurin'
cache: 'gradle'
- name: Install necessary tooling
env:
APACHE_THRIFT_VERSION: 0.9.3
run: |
apt-get update && apt-get install -y wget gcc make build-essential git

wget https://archive.apache.org/dist/thrift/${APACHE_THRIFT_VERSION}/thrift-${APACHE_THRIFT_VERSION}.tar.gz && \
tar -xvf thrift-${APACHE_THRIFT_VERSION}.tar.gz && \
rm thrift-${APACHE_THRIFT_VERSION}.tar.gz && \
cd thrift-${APACHE_THRIFT_VERSION}/ && \
./configure --enable-libs=no --enable-tests=no --enable-tutorial=no --with-cpp=no --with-c_glib=no --with-java=yes --with-ruby=no --with-erlang=no --with-go=no --with-nodejs=no --with-python=no && \
make && \
make install && \
cd .. && \
rm -rf thrift-${APACHE_THRIFT_VERSION}

- name: Determine release version
id: vars
run: |
Expand All @@ -53,7 +37,7 @@ jobs:
OSSATUBER_PASSWORD: ${{ secrets.OSSATUBER_PASSWORD }}
OSSATUBER_USERNAME: ${{ secrets.OSSATUBER_USERNAME }}
run: | # TODO old way of setting the properties from environment variables in gradle
./gradlew publishToSonatype closeSonatypeStagingRepository --info \
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --info \
-Psigning.keyId="${SIGNING_KEY_ID}" \
-Psigning.password="${SIGNING_PASSWORD}" \
-Psigning.key="${SIGNING_KEY}" \
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/semantic-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Semantic Pull Request

on:
pull_request:
types:
- opened
- edited
- synchronize

jobs:
semantic-pr:
name: Validate PR title follows conventional commit format
runs-on: ubuntu-latest
# TODO: Remove this once we commit to conventional commits
continue-on-error: true

steps:
- name: Validate PR title
id: lint_pr_title
uses: amannn/action-semantic-pull-request@v5.4.0
with:
# Allow standard conventional commit types
types: |
fix
feat
docs
style
refactor
perf
test
chore
ci
build
# TODO: Remove this once we've decided on scopes
requireScope: false
# Skip validation for certain labels if needed
ignoreLabels: |
skip-commit-format
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Comment on PR if validation fails
if: steps.lint_pr_title.outputs.error_message != null
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `⚠️ **Semantic PR Check Failed**

**Error Details:**
\`\`\`
${{ steps.lint_pr_title.outputs.error_message }}
\`\`\`

**Required Format:**
\`\`\`
<type>: <description>
\`\`\`

**Allowed types:** fix, feat, docs, style, refactor, perf, test, chore, ci, build

**Examples:**
- \`feat: add user authentication system\`
- \`fix: resolve memory leak in worker pool\`
- \`docs: update API documentation\`
- \`test: add integration tests for auth flow\`

This is currently a **warning only** and won't block your PR from being merged.`
})
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,5 @@ And sometimes it's important to test the non-sticky mode
STICKY_OFF=true USE_DOCKER_SERVICE=true ./gradlew test
```

Also, if there is any Buildkite test failure that you cannot reproduce locally,
follow [buildkite docker-compose](./docker/buildkite/README.md) instructions to run the tests.
Also, if there is any Github Actions test failure that you cannot reproduce locally,
follow [github action docker-compose](./docker/github_actions/README.md) instructions to run the tests.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Java framework for Cadence [![Build Status](https://badge.buildkite.com/0c96b8b74c0921208e898c10a602e2fe9ecb7641c2befee0e7.svg?theme=github&branch=master)](https://buildkite.com/uberopensource/cadence-java-client) [![Javadocs](https://www.javadoc.io/badge/com.uber.cadence/cadence-client.svg)](https://www.javadoc.io/doc/com.uber.cadence/cadence-client) [![codecov](https://codecov.io/gh/cadence-workflow/cadence-java-client/graph/badge.svg?token=eVBGf4EmXr)](https://codecov.io/gh/cadence-workflow/cadence-java-client)
# Java framework for Cadence [![CI Checks](https://github.com/cadence-workflow/cadence-java-client/actions/workflows/ci-checks.yml/badge.svg)](https://github.com/cadence-workflow/cadence-java-client/actions/workflows/ci-checks.yml) [![Javadocs](https://www.javadoc.io/badge/com.uber.cadence/cadence-client.svg)](https://www.javadoc.io/doc/com.uber.cadence/cadence-client) [![codecov](https://codecov.io/gh/cadence-workflow/cadence-java-client/graph/badge.svg?token=eVBGf4EmXr)](https://codecov.io/gh/cadence-workflow/cadence-java-client)


[Cadence](https://github.com/uber/cadence) is a distributed, scalable, durable, and highly available orchestration engine we developed at Uber Engineering to execute asynchronous long-running business logic in a scalable and resilient way.
Expand Down
Loading
Loading