blob: bfffe8862ec166956b8f5da968a4ff28d78bee20 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
mvn_opts=
mvn_cmd=mvn $(mvn_opts)
build_chain_branch=$(shell git branch --show-current)
build_chain_file='https://raw.githubusercontent.com/kiegroup/drools/main/.ci/pull-request-config.yaml'
build_chain_group='kiegroup'
build_chain_project='kiegroup/drools'
default: help
.PHONY: build
## Build the project
build:
$(mvn_cmd) clean install
.PHONY: build-quickly
## Perform a quick build of the project
build-quickly:
$(mvn_cmd) clean install -Dquickly
.PHONY: build-upstream
## (build-chain) Build upstream projects from the same branch. If needed, you can modify the `build_chain_file`, `build_chain_group` and `build_chain_branch`. See `build_chain_file` for setting correct environment variables
build-upstream: build-chain
build-chain build cross_pr -f ${build_chain_file} -o /tmp/bc -p ${build_chain_project} -b ${build_chain_branch} -g ${build_chain_group} --skipParallelCheckout --skipProjectExecution kiegroup/kogito-runtimes --skipProjectCheckout kiegroup/kogito-runtimes
.PHONY: build-pr
pr_link=
## (build-chain) Build projects from a given `pr_link` argument. If needed, you can also modify the `build_chain_file` and `build_chain_project`. See `build_chain_file` for setting correct environment variables
build-pr: build-chain
$(if $(pr_link),,$(error Please provide the 'pr_link' argument))
build-chain build cross_pr -f ${build_chain_file} -o /tmp/bc -p ${build_chain_project} -u ${pr_link} --skipParallelCheckout
.PHONY: test
## Launch full testing
test:
$(mvn_cmd) clean verify
.PHONY: quick-test
## Launch unit testing
quick-test:
$(mvn_cmd) clean verify -DquickTests
.PHONY: deploy
## Deploy the project
deploy:
$(mvn_cmd) deploy
.PHONY: clean
## Clean the project
clean:
$(mvn_cmd) clean
.PHONY: mvn
## Execute a Maven command with project configuration. Needs the `cmd` argument set
mvn:
$(mvn_cmd) ${cmd}
.PHONY: update-quarkus
## Update the quarkus version. Needs the `quarkus_version` argument set. See also '.ci/environments/common/update_quarkus.sh' for setting correct environment variables
update-quarkus:
.ci/environments/common/update_quarkus.sh ${quarkus_version}
$(MAKE) show-diff
.PHONY: prepare-env
## Prepare the repository for a specific environment. Needs the `environment` argument set. See also '.ci/environments/{environment}' script for setting correct environment variables
prepare-env:
.ci/environments/update.sh ${environment}
.PHONY: tree
## Show project dependencies
tree:
$(mvn_cmd) dependency:tree
.PHONY: show-diff
## Show Git diff
show-diff:
git status
git diff
.PHONY: help
## This help screen
help:
@printf "Available targets:\n\n"
@awk '/^[a-zA-Z\-_0-9%:\\]+/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = $$1; \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
gsub("\\\\", "", helpCommand); \
gsub(":+$$", "", helpCommand); \
printf " \x1b[32;01m%-35s\x1b[0m %s\n", helpCommand, helpMessage; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
@printf "\n"
@printf "All Maven commands can include some maven options via the \`mvn_opts\` argument !"
@printf "\n"
.PHONY: build-chain
build-chain:
which build-chain || npm i @kie/build-chain-action -g || printf "\nERROR: Cannot install build-chain. Please run \`npm i @kie/build-chain-action -g\` as sudo user\n"