mirror of
https://github.com/ansible/awx.git
synced 2026-02-27 15:58:45 -03:30
Refine UI_NEXT Makefile and update README
This commit is contained in:
7
Makefile
7
Makefile
@@ -451,7 +451,7 @@ HEADLESS ?= no
|
|||||||
ifeq ($(HEADLESS), yes)
|
ifeq ($(HEADLESS), yes)
|
||||||
dist/$(SDIST_TAR_FILE):
|
dist/$(SDIST_TAR_FILE):
|
||||||
else
|
else
|
||||||
dist/$(SDIST_TAR_FILE): $(UI_BUILD_FLAG_FILE) awx/ui_next/build
|
dist/$(SDIST_TAR_FILE): $(UI_BUILD_FLAG_FILE) ui-next
|
||||||
endif
|
endif
|
||||||
$(PYTHON) -m build -s
|
$(PYTHON) -m build -s
|
||||||
ln -sf $(SDIST_TAR_FILE) dist/awx.tar.gz
|
ln -sf $(SDIST_TAR_FILE) dist/awx.tar.gz
|
||||||
@@ -592,7 +592,7 @@ awx-kube-dev-build: Dockerfile.kube-dev
|
|||||||
-t $(DEV_DOCKER_TAG_BASE)/awx_kube_devel:$(COMPOSE_TAG) .
|
-t $(DEV_DOCKER_TAG_BASE)/awx_kube_devel:$(COMPOSE_TAG) .
|
||||||
|
|
||||||
## Build awx image for deployment on Kubernetes environment.
|
## Build awx image for deployment on Kubernetes environment.
|
||||||
awx-kube-build: Dockerfile awx/ui_next/src
|
awx-kube-build: Dockerfile
|
||||||
DOCKER_BUILDKIT=1 docker build -f Dockerfile \
|
DOCKER_BUILDKIT=1 docker build -f Dockerfile \
|
||||||
--build-arg VERSION=$(VERSION) \
|
--build-arg VERSION=$(VERSION) \
|
||||||
--build-arg SETUPTOOLS_SCM_PRETEND_VERSION=$(VERSION) \
|
--build-arg SETUPTOOLS_SCM_PRETEND_VERSION=$(VERSION) \
|
||||||
@@ -659,6 +659,9 @@ help/generate:
|
|||||||
help/%:
|
help/%:
|
||||||
@make -s help MAKEFILE_LIST="$*/Makefile"
|
@make -s help MAKEFILE_LIST="$*/Makefile"
|
||||||
|
|
||||||
|
help/ui-next:
|
||||||
|
@make -s help MAKEFILE_LIST="awx/ui_next/Makefile"
|
||||||
|
|
||||||
## Display help for a specific target folder
|
## Display help for a specific target folder
|
||||||
help/%/aliases:
|
help/%/aliases:
|
||||||
@make -s help/all MAKEFILE_LIST="$*/Makefile.aliases"
|
@make -s help/all MAKEFILE_LIST="$*/Makefile.aliases"
|
||||||
|
|||||||
@@ -1,142 +1,97 @@
|
|||||||
## UI_NEXT_MKFILE_PATH: Path to this Makefile
|
## UI_NEXT_DIR: Relative path to the directory containing this Makefile
|
||||||
UI_NEXT_MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
UI_NEXT_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
## UI_NEXT_DIR_ABS: Absolute path to the directory containing this Makefile
|
# ## Path to your local clone of the UI_NEXT repo
|
||||||
UI_NEXT_DIR_ABS := $(dir $(UI_NEXT_MKFILE_PATH))
|
# # NOTE: you will not be able to build within the docker-compose development environment if you use this option
|
||||||
|
|
||||||
## UI_NEXT_REL_DIR: Relative path to the directory containing this Makefile
|
|
||||||
# NOTE: UI_NEXT_REL_DIR swallowed the / because we want to be able to run `make src` from the ui_next dir
|
|
||||||
UI_NEXT_REL_DIR := $(subst $(CURDIR)/,, $(UI_NEXT_DIR_ABS))
|
|
||||||
|
|
||||||
## UI_NEXT_SRC_DIR: Path to the ui_next src directory
|
|
||||||
UI_NEXT_SRC_DIR := $(UI_NEXT_REL_DIR)src
|
|
||||||
|
|
||||||
## UI_NEXT_BUILD_DIR: Path to the ui_next build directory
|
|
||||||
UI_NEXT_BUILD_DIR := $(UI_NEXT_REL_DIR)build
|
|
||||||
|
|
||||||
## Path to your local clone of the UI_NEXT repo
|
|
||||||
# NOTE: This does not work with docker-compose development environment
|
|
||||||
UI_NEXT_LOCAL ?=
|
UI_NEXT_LOCAL ?=
|
||||||
|
|
||||||
# Git repo and branch to the UI_NEXT repo
|
# Git repo and branch to the UI_NEXT repo
|
||||||
UI_NEXT_GIT_REPO_SSH ?= git@github.com:ansible/ansible-ui.git
|
UI_NEXT_GIT_REPO ?= https://github.com/ansible/ansible-ui.git
|
||||||
UI_NEXT_GIT_REPO_HTTPS ?= https://github.com/ansible/ansible-ui.git
|
|
||||||
UI_NEXT_GIT_BRANCH ?= main
|
UI_NEXT_GIT_BRANCH ?= main
|
||||||
|
|
||||||
# awx-manage collect static require the awx/ui_next/build to exist
|
.PHONY: ui-next
|
||||||
# therefore we have to commit the build directory to source control
|
## Default build target of ui-next Makefile, builds ui-next/build
|
||||||
# so that make docker-compose will be able to start up uwsgi
|
ui-next: ui-next/build
|
||||||
# UI_NEXT_BUILT_FILE is here so that we can use it as the non-phony build target
|
|
||||||
UI_NEXT_BUILT_FILE = $(UI_NEXT_REL_DIR).ui-built
|
|
||||||
|
|
||||||
## Default target of this Makefile build the ui_next/build from source
|
.PHONY: ui-next/build
|
||||||
ui-next: ui_next/build
|
## Build ui-next/build
|
||||||
|
ui-next/build: $(UI_NEXT_DIR)/build
|
||||||
|
|
||||||
.PHONY: ui_next/clone-https
|
## Real target for ui-next.
|
||||||
## Shallow clone the ui_next repo via https skip if UI_NEXT_GIT_REPO_HTTPS is undefined
|
$(UI_NEXT_DIR)/build: ui-next/src/build
|
||||||
ui_next/clone-https:
|
@echo "=== Copying $(UI_NEXT_DIR)/src/build to $(UI_NEXT_DIR)/build ==="
|
||||||
@if [ -z "$(UI_NEXT_GIT_REPO_HTTPS)" ]; then \
|
@rm -rf $(UI_NEXT_DIR)/build
|
||||||
echo "SKIP: ui_next/clone-https. UI_NEXT_GIT_REPO_HTTPS is not set."; \
|
@cp -r $(UI_NEXT_DIR)/src/build $(UI_NEXT_DIR)
|
||||||
elif [ -d $(UI_NEXT_SRC_DIR) ]; then \
|
@echo "=== Done building $(UI_NEXT_DIR)/build ==="
|
||||||
echo "SKIP: ui_next/clone-https. $(UI_NEXT_SRC_DIR) already exists."; \
|
|
||||||
|
.PHONY: ui-next/src/build
|
||||||
|
## Build ui-next/src/build
|
||||||
|
ui-next/src/build: $(UI_NEXT_DIR)/src/build
|
||||||
|
|
||||||
|
## Real target for ui-next/src/build.
|
||||||
|
$(UI_NEXT_DIR)/src/build: ui-next/src ui-next/src/webpack
|
||||||
|
@echo "=== Building ui_next ==="
|
||||||
|
@cd $(UI_NEXT_DIR)/src && npm run build:awx
|
||||||
|
|
||||||
|
.PHONY: ui-next/src
|
||||||
|
ui-next/src: $(UI_NEXT_DIR)/src
|
||||||
|
|
||||||
|
.PHONY: $(UI_NEXT_DIR)/src
|
||||||
|
## Real target for ui-next/src.
|
||||||
|
$(UI_NEXT_DIR)/src:
|
||||||
|
@echo "=== Setting up $(UI_NEXT_DIR)/src ==="
|
||||||
|
@if [ ! -z "$(UI_NEXT_LOCAL)" ]; then \
|
||||||
|
if [ -d $(UI_NEXT_DIR)/src ]; then \
|
||||||
|
if [ "$$(readlink $(UI_NEXT_DIR)/src)" = "$(UI_NEXT_LOCAL)" ]; then \
|
||||||
|
echo "SKIP: ui-next/src. $(UI_NEXT_DIR)/src already linked to $(UI_NEXT_LOCAL)."; \
|
||||||
|
else \
|
||||||
|
echo "=== Linking $(UI_NEXT_DIR)/src to $(UI_NEXT_LOCAL) ==="; \
|
||||||
|
rm -rf $(UI_NEXT_DIR)/src; \
|
||||||
|
ln -s $(UI_NEXT_LOCAL) $(UI_NEXT_DIR)/src; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "=== Linking $(UI_NEXT_DIR)/src to $(UI_NEXT_LOCAL) ==="; \
|
||||||
|
ln -s $(UI_NEXT_LOCAL) $(UI_NEXT_DIR)/src; \
|
||||||
|
fi; \
|
||||||
|
elif [ ! -z "$(UI_NEXT_GIT_REPO)" ]; then \
|
||||||
|
if [ -d $(UI_NEXT_DIR)/src ]; then \
|
||||||
|
GIT_REMOTE_ORIGIN=$$(cd $(UI_NEXT_DIR)/src && git remote get-url origin); \
|
||||||
|
GIT_REMOTE_BRANCH=$$(cd $(UI_NEXT_DIR)/src && git rev-parse --abbrev-ref HEAD); \
|
||||||
|
if [ "$$GIT_REMOTE_ORIGIN" = "$(UI_NEXT_GIT_REPO)" ] && [ "$$GIT_REMOTE_BRANCH" = "$(UI_NEXT_GIT_BRANCH)" ]; then \
|
||||||
|
echo "=== Updating $(UI_NEXT_DIR)/src from $(UI_NEXT_GIT_BRANCH) of $(UI_NEXT_GIT_REPO) ==="; \
|
||||||
|
git fetch && git pull; \
|
||||||
|
else \
|
||||||
|
echo "=== Cloning $(UI_NEXT_DIR)/src from $(UI_NEXT_GIT_BRANCH) of $(UI_NEXT_GIT_REPO) ==="; \
|
||||||
|
rm -rf $(UI_NEXT_DIR)/src; \
|
||||||
|
git clone --depth 1 --branch $(UI_NEXT_GIT_BRANCH) $(UI_NEXT_GIT_REPO) $(UI_NEXT_DIR)/src || true; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "=== Cloning $(UI_NEXT_DIR)/src from $(UI_NEXT_GIT_BRANCH) of $(UI_NEXT_GIT_REPO) ==="; \
|
||||||
|
git clone --depth 1 --branch $(UI_NEXT_GIT_BRANCH) $(UI_NEXT_GIT_REPO) $(UI_NEXT_DIR)/src || true; \
|
||||||
|
fi; \
|
||||||
else \
|
else \
|
||||||
git clone --depth 1 --branch $(UI_NEXT_GIT_BRANCH) $(UI_NEXT_GIT_REPO_HTTPS) $(UI_NEXT_SRC_DIR) || true; \
|
echo "SKIP: ui-next/src. UI_NEXT_LOCAL and UI_NEXT_GIT_REPO are not set."; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: ui_next/clone-ssh
|
.PHONY: ui-next/src/webpack
|
||||||
## Shallow clone the ui_next repo via ssh.
|
## Install webpack.
|
||||||
ui_next/clone-ssh:
|
ui-next/src/webpack: $(UI_NEXT_DIR)/src/node_modules/webpack
|
||||||
@if [ -z "$(UI_NEXT_GIT_REPO_SSH)" ]; then \
|
|
||||||
echo "SKIP: ui_next/clone-ssh. UI_NEXT_GIT_REPO_SSH is not set."; \
|
|
||||||
elif [ -d $(UI_NEXT_SRC_DIR) ]; then \
|
|
||||||
echo "SKIP: ui_next/clone-ssh. $(UI_NEXT_SRC_DIR) already exists."; \
|
|
||||||
else \
|
|
||||||
git clone --depth 1 --branch $(UI_NEXT_GIT_BRANCH) $(UI_NEXT_GIT_REPO_SSH) $(UI_NEXT_SRC_DIR) || true; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
.PHONY: ui_next/link-local
|
## Real target for ui-next/src/webpack.
|
||||||
## Link to a existing local clone of ui_next repo. If method will not be able to build inside docker-compose environment
|
$(UI_NEXT_DIR)/src/node_modules/webpack:
|
||||||
ui_next/link-local:
|
@echo "=== Installing webpack ==="
|
||||||
@if [ -z "$(UI_NEXT_LOCAL)" ]; then \
|
@cd $(UI_NEXT_DIR)/src && npm install webpack
|
||||||
echo "SKIP: ui_next/link-local. UI_NEXT_LOCAL is not set."; \
|
|
||||||
elif [ -d $(UI_NEXT_SRC_DIR) ]; then \
|
|
||||||
echo "SKIP: ui_next/link-local. $(UI_NEXT_SRC_DIR) already exists."; \
|
|
||||||
else \
|
|
||||||
ln -s $(UI_NEXT_LOCAL) $(UI_NEXT_SRC_DIR); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
.PHONY: ui_next/src
|
.PHONY: clean/ui-next
|
||||||
## Try to link to a local clone of ui_next repo if it exist otherwise clone via ssh than https.
|
|
||||||
ui_next/src:
|
|
||||||
@if [ -d $(UI_NEXT_SRC_DIR) ]; then \
|
|
||||||
echo "SKIP: ui_next. $(UI_NEXT_SRC_DIR) already exists."; \
|
|
||||||
else \
|
|
||||||
$(MAKE) ui_next/link-local ui_next/clone-ssh ui_next/clone-https; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Alias for ui_next, will not run if ui_next/src already exist
|
|
||||||
$(UI_NEXT_SRC_DIR):
|
|
||||||
$(MAKE) ui_next/src
|
|
||||||
|
|
||||||
## Alias for ui_next/build, will not run if ui_next/src/build already exist
|
|
||||||
$(UI_NEXT_SRC_DIR)/build:
|
|
||||||
$(MAKE) ui_next/src/build
|
|
||||||
|
|
||||||
.PHONY: ui_next/build
|
|
||||||
## Build ui_next from source
|
|
||||||
ui_next/src/build: $(UI_NEXT_SRC_DIR) $(UI_NEXT_SRC_DIR)/node_modules/webpack
|
|
||||||
@cd $(UI_NEXT_SRC_DIR) && npm run build:awx
|
|
||||||
|
|
||||||
|
|
||||||
## Install webpack if does not exist.
|
|
||||||
ui_next/src/node_modules/webpack: $(UI_NEXT_SRC_DIR)
|
|
||||||
@if [ -d $(UI_NEXT_SRC_DIR)/node_modules/webpack ]; then \
|
|
||||||
echo "SKIP: ui_next/src/node_modules/webpack. $(UI_NEXT_SRC_DIR)/node_modules/webpack already exists."; \
|
|
||||||
else \
|
|
||||||
cd $(UI_NEXT_SRC_DIR) && npm install webpack; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Alias for ui_next/src/node_modules/webpack. will not run if webpack already exist
|
|
||||||
$(UI_NEXT_SRC_DIR)/node_modules/webpack:
|
|
||||||
$(MAKE) ui_next/src/node_modules/webpack
|
|
||||||
|
|
||||||
## Copy ui_next/src/build to ui_next/build
|
|
||||||
ui_next/build: ui_next/clean/build
|
|
||||||
$(MAKE) $(UI_NEXT_SRC_DIR)/build
|
|
||||||
@mkdir $(UI_NEXT_DIR_ABS)build && \
|
|
||||||
cp -r $(UI_NEXT_SRC_DIR)/build/awx $(UI_NEXT_DIR_ABS)build/awx &&\
|
|
||||||
touch $(UI_NEXT_BUILT_FILE)
|
|
||||||
|
|
||||||
## Alias for ui_next/build. Will not run if .ui-built file already exist
|
|
||||||
$(UI_NEXT_BUILT_FILE):
|
|
||||||
$(MAKE) ui_next/build
|
|
||||||
|
|
||||||
## Alias for ui_next/build.
|
|
||||||
.PHONY: $(UI_NEXT_BUILD_DIR)
|
|
||||||
$(UI_NEXT_BUILD_DIR):
|
|
||||||
$(MAKE) ui_next/build
|
|
||||||
|
|
||||||
.PHONY: $(UI_NEXT_REL_DIR)clean
|
|
||||||
## Alias for ui_next/clean.
|
|
||||||
$(UI_NEXT_REL_DIR)clean:
|
|
||||||
rm -rf $(UI_NEXT_SRC_DIR)
|
|
||||||
rm -rf $(UI_NEXT_BUILD_DIR)
|
|
||||||
|
|
||||||
.PHONY: ui_next/clean
|
|
||||||
## Clean ui_next
|
## Clean ui_next
|
||||||
ui_next/clean: ui_next/clean/build
|
clean/ui-next: clean/ui-next/build clean/ui-next/src
|
||||||
rm -rf $(UI_NEXT_SRC_DIR)
|
|
||||||
|
|
||||||
.PHONY: ui_next/clean/src
|
.PHONY: clean/ui-next/src
|
||||||
## Clean ui_next src
|
## Clean ui_next src
|
||||||
ui_next/clean/src:
|
clean/ui-next/src:
|
||||||
rm -rf $(UI_NEXT_SRC_DIR)
|
rm -rf $(UI_NEXT_DIR)/src
|
||||||
|
|
||||||
.PHONY: ui_next/clean/build
|
.PHONY: clean/ui-next/build
|
||||||
## Clean ui_next build
|
## Clean ui_next build
|
||||||
ui_next/clean/build:
|
clean/ui-next/build:
|
||||||
rm -rf $(UI_NEXT_BUILD_DIR)
|
rm -rf $(UI_NEXT_DIR)/build
|
||||||
rm -rf $(UI_NEXT_BUILT_FILE)
|
|
||||||
|
|
||||||
print-%:
|
|
||||||
@echo $($*)
|
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
### via GIT
|
### via GIT
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export UI_NEXT_GIT_BRANCH_REPO_HTTPS=https://<git repo>
|
export UI_NEXT_GIT_BRANCH_REPO=https://<git repo>
|
||||||
```
|
```
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export UI_NEXT_GIT_BRANCH_REPO_SSH=git@<git repo>
|
export UI_NEXT_GIT_BRANCH_REPO=git@<git repo>
|
||||||
```
|
```
|
||||||
|
|
||||||
optionally set branch (default is main)
|
optionally set branch (default is main)
|
||||||
@@ -29,5 +29,11 @@ export UI_NEXT_LOCAL = /path/to/your/ui_next
|
|||||||
## Build
|
## Build
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make ui_next/build
|
make ui-next
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clean
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make clean/ui-next
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user