test(cassandra): attempt to stabilize flaky test #6
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: Push Entrypoint | |
concurrency: | |
group: push-entrypoint-${{ github.event_name }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
tags: | |
- 'v*' | |
branches: | |
- 'master' | |
- 'release-5[0-9]' | |
- 'ci/**' | |
workflow_dispatch: | |
inputs: | |
ref: | |
required: false | |
permissions: | |
contents: read | |
defaults: | |
run: | |
shell: bash | |
env: | |
IS_CI: 'yes' | |
jobs: | |
init: | |
runs-on: ubuntu-22.04 | |
outputs: | |
BUILDER_VSN: ${{ steps.env.outputs.BUILDER_VSN }} | |
OTP_VSN: ${{ steps.env.outputs.OTP_VSN }} | |
ELIXIR_VSN: ${{ steps.env.outputs.ELIXIR_VSN }} | |
BUILDER: ${{ steps.env.outputs.BUILDER }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- name: Set up environment | |
id: env | |
run: | | |
source env.sh | |
echo "BUILDER_VSN=$EMQX_BUILDER_VSN" >> "$GITHUB_OUTPUT" | |
echo "OTP_VSN=$OTP_VSN" >> "$GITHUB_OUTPUT" | |
echo "ELIXIR_VSN=$ELIXIR_VSN" >> "$GITHUB_OUTPUT" | |
echo "BUILDER=$EMQX_BUILDER" >> "$GITHUB_OUTPUT" | |
prepare: | |
runs-on: ubuntu-22.04 | |
needs: init | |
container: ${{ needs.init.outputs.BUILDER }} | |
outputs: | |
profile: ${{ steps.parse-git-ref.outputs.profile }} | |
release: ${{ steps.parse-git-ref.outputs.release }} | |
latest: ${{ steps.parse-git-ref.outputs.latest }} | |
ct-matrix: ${{ steps.matrix.outputs.ct-matrix }} | |
ct-host: ${{ steps.matrix.outputs.ct-host }} | |
ct-docker: ${{ steps.matrix.outputs.ct-docker }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
fetch-depth: 0 | |
- name: Work around https://github.com/actions/checkout/issues/766 | |
shell: bash | |
run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- name: Detect emqx profile | |
id: parse-git-ref | |
run: | | |
JSON="$(./scripts/parse-git-ref.sh $GITHUB_REF)" | |
PROFILE=$(echo "$JSON" | jq -cr '.profile') | |
RELEASE=$(echo "$JSON" | jq -cr '.release') | |
LATEST=$(echo "$JSON" | jq -cr '.latest') | |
echo "profile=$PROFILE" | tee -a $GITHUB_OUTPUT | |
echo "release=$RELEASE" | tee -a $GITHUB_OUTPUT | |
echo "latest=$LATEST" | tee -a $GITHUB_OUTPUT | |
- name: Build matrix | |
id: matrix | |
run: | | |
MATRIX="$(./scripts/find-apps.sh --ci)" | |
echo "${MATRIX}" | jq | |
CT_MATRIX="$(echo "${MATRIX}" | jq -c 'map({profile}) | unique')" | |
CT_HOST="$(echo "${MATRIX}" | jq -c 'map(select(.runner == "host"))')" | |
CT_DOCKER="$(echo "${MATRIX}" | jq -c 'map(select(.runner == "docker"))')" | |
echo "ct-matrix=${CT_MATRIX}" | tee -a $GITHUB_OUTPUT | |
echo "ct-host=${CT_HOST}" | tee -a $GITHUB_OUTPUT | |
echo "ct-docker=${CT_DOCKER}" | tee -a $GITHUB_OUTPUT | |
build_packages: | |
if: needs.prepare.outputs.release == 'true' | |
needs: | |
- init | |
- prepare | |
uses: ./.github/workflows/build_packages.yaml | |
with: | |
profile: ${{ needs.prepare.outputs.profile }} | |
publish: true | |
otp_vsn: ${{ needs.init.outputs.OTP_VSN }} | |
elixir_vsn: ${{ needs.init.outputs.ELIXIR_VSN }} | |
builder_vsn: ${{ needs.init.outputs.BUILDER_VSN }} | |
secrets: inherit | |
build_and_push_docker_images: | |
if: needs.prepare.outputs.release == 'true' | |
needs: | |
- init | |
- prepare | |
uses: ./.github/workflows/build_and_push_docker_images.yaml | |
with: | |
profile: ${{ needs.prepare.outputs.profile }} | |
publish: true | |
latest: ${{ needs.prepare.outputs.latest }} | |
secrets: inherit | |
build_slim_packages: | |
if: needs.prepare.outputs.release != 'true' | |
needs: | |
- init | |
- prepare | |
uses: ./.github/workflows/build_slim_packages.yaml | |
compile: | |
runs-on: ${{ endsWith(github.repository, '/emqx') && 'ubuntu-22.04' || fromJSON('["self-hosted","ephemeral","linux","x64"]') }} | |
container: ${{ needs.init.outputs.BUILDER }} | |
needs: | |
- init | |
- prepare | |
strategy: | |
matrix: | |
profile: | |
- emqx | |
- emqx-enterprise | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
fetch-depth: 0 | |
- name: Work around https://github.com/actions/checkout/issues/766 | |
run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- id: compile | |
env: | |
PROFILE: ${{ matrix.profile }} | |
ENABLE_COVER_COMPILE: 1 | |
run: | | |
make $PROFILE | |
echo "export PROFILE=${PROFILE}" | tee -a env.sh | |
echo "export PKG_VSN=$(./pkg-vsn.sh ${PROFILE})" | tee -a env.sh | |
zip -ryq [email protected]/workflows/.zipignore $PROFILE.zip . | |
make ${PROFILE}-rel | |
- uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 | |
with: | |
name: ${{ matrix.profile }} | |
path: ${{ matrix.profile }}.zip | |
retention-days: 7 | |
- uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 | |
with: | |
name: "${{ matrix.profile }}-schema-dump" | |
path: | | |
env.sh | |
_build/docgen/${{ matrix.profile }}/*.json | |
_build/docgen/${{ matrix.profile }}/*.hocon | |
retention-days: 7 | |
update_emqx_i18n: | |
if: needs.prepare.outputs.release == 'true' | |
needs: | |
- prepare | |
- compile | |
runs-on: ${{ endsWith(github.repository, '/emqx') && 'ubuntu-22.04' || fromJSON('["self-hosted","ephemeral","linux","x64"]') }} | |
steps: | |
- name: Create PR in emqx/emqx-i18n | |
env: | |
GH_TOKEN: ${{ secrets.CI_GITHUB_TOKEN_DOCS_I18N_RW }} | |
run: | | |
gh --repo emqx/emqx-i18n workflow run sync-en-doc.yaml -f version=${GITHUB_REF_NAME##[v|e]} -f repository=${GITHUB_REPOSITORY} -f run_id=${GITHUB_RUN_ID} | |
update_emqx_docs: | |
if: needs.prepare.outputs.release == 'true' | |
needs: | |
- prepare | |
- compile | |
runs-on: ${{ endsWith(github.repository, '/emqx') && 'ubuntu-22.04' || fromJSON('["self-hosted","ephemeral","linux","x64"]') }} | |
steps: | |
- name: Create PR in emqx/emqx-docs | |
env: | |
GH_TOKEN: ${{ secrets.CI_GITHUB_TOKEN_DOCS_I18N_RW }} | |
run: | | |
gh --repo emqx/emqx-docs workflow run update-api-and-cfg-manual.yaml -f version=${GITHUB_REF_NAME##[v|e]} -f repository=${GITHUB_REPOSITORY} -f run_id=${GITHUB_RUN_ID} | |
run_emqx_app_tests: | |
if: needs.prepare.outputs.release != 'true' | |
needs: | |
- init | |
- prepare | |
- compile | |
uses: ./.github/workflows/run_emqx_app_tests.yaml | |
with: | |
builder: ${{ needs.init.outputs.BUILDER }} | |
before_ref: ${{ github.event.before }} | |
after_ref: ${{ github.sha }} | |
run_test_cases: | |
if: needs.prepare.outputs.release != 'true' | |
needs: | |
- init | |
- prepare | |
- compile | |
permissions: | |
contents: read | |
pull-requests: write | |
uses: ./.github/workflows/run_test_cases.yaml | |
with: | |
builder: ${{ needs.init.outputs.BUILDER }} | |
ct-matrix: ${{ needs.prepare.outputs.ct-matrix }} | |
ct-host: ${{ needs.prepare.outputs.ct-host }} | |
ct-docker: ${{ needs.prepare.outputs.ct-docker }} | |
run_conf_tests: | |
if: needs.prepare.outputs.release != 'true' | |
needs: | |
- init | |
- prepare | |
- compile | |
uses: ./.github/workflows/run_conf_tests.yaml | |
with: | |
builder: ${{ needs.init.outputs.BUILDER }} | |
static_checks: | |
if: needs.prepare.outputs.release != 'true' | |
needs: | |
- init | |
- prepare | |
- compile | |
uses: ./.github/workflows/static_checks.yaml | |
with: | |
builder: ${{ needs.init.outputs.BUILDER }} | |
ct-matrix: ${{ needs.prepare.outputs.ct-matrix }} |