Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: build Tasklist and Operate frontends in distribution module #18483

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

houssain-barouni
Copy link
Collaborator

@houssain-barouni houssain-barouni commented May 14, 2024

Description

This is to fix the issues found when running release:perform with concurrency, yarn install could not be run at the same time for Operate and Tasklist, thus we had to disable the concurrency for the releasing (which make it taking ~6 minutes longer)

In this pull request, frontend-maven-plugin executions are run by dist module to ensure that they are not run in parallel, it also allows that install-node-and-yarn goal is excuted only once.
A new profile buildDistFrontend was created to be used for mvn release:perform along with skipFrontendBuild that skips the same plugin executions in client submodules in Tasklist and Operate
The plugin is kept though in client modules, to allow developers to start the applications using webapp only (without building and running the single JAR)

Dry-run for this branch https://github.com/camunda/zeebe/actions/runs/9075444643

Related issues

closes #

@github-actions github-actions bot added the component/zeebe Related to the Zeebe component/team label May 14, 2024
@houssain-barouni houssain-barouni added component/operate Related to the Operate component/team component/tasklist Related to the Tasklist component/team and removed component/zeebe Related to the Zeebe component/team labels May 14, 2024
@houssain-barouni houssain-barouni marked this pull request as draft May 17, 2024 07:49
@houssain-barouni
Copy link
Collaborator Author

Since Tasklist and Operate will be started from dist, I will update this pull request to simplify the used maven profiles

Copy link
Member

@Zelldon Zelldon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 👍🏼

Comment on lines +176 to +181
# -DskipQaBuild=true -P-autoFormat,buildDistFrontend,skipFrontendBuild
# In order to disable QA/IT and the auto formatting during the release.
# It is unnecessary to release integration tests, and we don't want to run the auto-formatting unnecessarily.
# Building Operate and Tasklist frontend packages does not work in concurrent mode:
# - It is necessary to build the frontend packages in a single place, from dist module, using buildDistFrontend profile
# - It is necessary to skip frontend build in the respective Operate and Tasklist client modules using skipFrontendBuild profile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

./mvnw release:perform -B \
-Dgpg.passphrase="${{ steps.secrets.outputs.MAVEN_CENTRAL_GPG_SIGNING_KEY_PASSPHRASE }}" \
-DlocalCheckout=${{ inputs.dryRun }} \
-DskipQaBuild=true \
-P-autoFormat \
-Darguments='-P-autoFormat -DskipQaBuild=true -DskipChecks=true -DskipTests=true -Dskip.fe.build=false -Dspotless.apply.skip=false -Dskip.central.release=${SKIP_REPO_DEPLOY} -Dskip.camunda.release=${SKIP_REPO_DEPLOY} -Dzbctl.force -Dzbctl.rootDir=${ZBCTL_ROOT_DIR} -Dgpg.passphrase="${{ steps.secrets.outputs.MAVEN_CENTRAL_GPG_SIGNING_KEY_PASSPHRASE }}"'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't remember anymore. Did we skipped the build per default now and enabled it here again? Do we maybe need to change here as well? Meaning this one -Dskip.fe.build=false

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-Dskip.fe.build=false forces the fe build at client modules level, now it is not needed as the fe is built at dist level
as I said above, I will simplify this in this pull request as now Tasklist and Operate entrypoints are in dist and not in the webapps anymore, stay tuned :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/operate Related to the Operate component/team component/tasklist Related to the Tasklist component/team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants