Add release workflow #61
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: kop tests | |
on: | |
pull_request: | |
branches: | |
- master | |
- branch-* | |
push: | |
branches: | |
- master | |
- branch-* | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
basic-validation: | |
name: Style check and basic unit tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
- name: License check | |
run: mvn -ntp -B license:check | |
- name: Style check | |
run: mvn -ntp -B checkstyle:check | |
- name: Build with Maven skipTests | |
run: mvn clean install -ntp -B -DskipTests | |
- name: Building JavaDocs | |
run: mvn -ntp -B javadoc:jar | |
- name: Spotbugs check | |
run: mvn -ntp -B spotbugs:check | |
- name: kafka-impl test after build | |
run: mvn test -ntp -B -DfailIfNoTests=false -pl kafka-impl | |
- name: schema registry test after build | |
run: mvn test -ntp -B -DfailIfNoTests=false -pl schema-registry | |
- name: kafka-payload-processor test after build | |
run: mvn test -ntp -B -DfailIfNoTests=false -pl kafka-payload-processor-shaded-tests | |
- name: Start and init the oauth server | |
run: ./ci/init_hydra_oauth_server.sh | |
timeout-minutes: 5 | |
- name: oauth-client-shaded test after build | |
run: mvn test -ntp -B -DfailIfNoTests=false -pl oauth-client-shaded-test | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v3 | |
- name: package surefire artifacts | |
if: failure() | |
run: | | |
rm -rf artifacts | |
mkdir artifacts | |
find . -type d -name "*surefire*" -exec cp --parents -R {} artifacts/ \; | |
zip -r artifacts.zip artifacts | |
- uses: actions/upload-artifact@master | |
name: upload surefire-artifacts | |
if: failure() | |
with: | |
name: surefire-artifacts | |
path: artifacts.zip | |
kop-unit-tests: | |
name: Unit Test (${{ matrix.test.name }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
strategy: | |
# other jobs should run even if one test fails | |
fail-fast: false | |
matrix: | |
test: [ | |
{ | |
name: "admin_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.admin.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "compatibility_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.compatibility.*Test' -pl tests", | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.compatibility..*.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "coordinator_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.coordinator.*Test' -pl tests", | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.coordinator..*.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "end_to_end_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.e2e.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "format_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.format.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "metadata_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.metadata.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "metrics_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.metrics.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "producer_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.producer.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "schema_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.schemaregistry.model.impl.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "security_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.security.*Test' -pl tests", | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.security.*.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "storage_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.storage.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "streams_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.streams.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "util_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.util.timer.*Test' -pl tests" | |
] | |
}, | |
{ | |
name: "other_test", | |
scripts: [ | |
"mvn test -ntp -B -DfailIfNoTests=false '-Dtest=io.streamnative.pulsar.handlers.kop.*Test' -pl tests" | |
] | |
}, | |
] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install jq | |
run: sudo apt-get install -y jq | |
- name: Build with Maven skipTests | |
run: mvn clean install -ntp -B -DskipTests | |
- name: Start and init the oauth server | |
run: ./ci/init_hydra_oauth_server.sh | |
timeout-minutes: 5 | |
- name: ${{ matrix.test.name }} | |
run: | | |
echo '${{ matrix.test.scripts }}' | |
scripts=$(echo '${{ toJson(matrix.test.scripts) }}' | jq -r '.[]') | |
IFS=$'\n' # change the internal field separator to newline | |
echo $scripts | |
for script in $scripts | |
do | |
bash -c "${script}" | |
done | |
unset IFS # revert the internal field separator back to default | |
- name: package surefire artifacts | |
if: failure() | |
run: | | |
rm -rf artifacts | |
mkdir artifacts | |
find . -type d -name "*surefire*" -exec cp --parents -R {} artifacts/ \; | |
zip -r "artifacts-${{ matrix.test.name }}.zip" artifacts | |
- uses: actions/upload-artifact@master | |
name: upload surefire-artifacts | |
if: failure() | |
with: | |
name: "surefire-artifacts-${{ matrix.test.name }}" | |
path: "artifacts-${{ matrix.test.name }}.zip" | |
unit-test-check: | |
name: Unit Test Check | |
runs-on: ubuntu-latest | |
needs: kop-unit-tests # This job will only run if all 'kop-unit-tests' jobs have completed successfully | |
steps: | |
- name: Check | |
run: echo "All tests have passed!" |