mintel / build-harness Goto Github PK
View Code? Open in Web Editor NEWThis project forked from charlieparkes/build-harness
🤖Collection of Makefiles to facilitate building Python/Golang projects, Dockerfiles, and more
License: Apache License 2.0
This project forked from charlieparkes/build-harness
🤖Collection of Makefiles to facilitate building Python/Golang projects, Dockerfiles, and more
License: Apache License 2.0
isort seems having compatibility issues with black psf/black#333 PyCQA/isort#694
There's a certain config to work around the issue, and implemented here through #27
I want to start this as dicussion of is isort provide enough value that we want to take on the maintenance responsibility for the incapability and potential breaking change in the future?
This is what happens if you use the python/dist
target without having pipenv installed.
awichmann@CHI-LX-L-018 '15:26:27' (upgrade_to_build_harness) '~/Code/everest_code/libraries/workflow-client'
> $ make dist
Writing requirements from Pipfile to requirements.txt and requirements-dev.txt
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pipenv'
/home/awichmann/Code/everest_code/libraries/build-harness/modules/pipenv/Makefile.env:56: recipe for target 'pipenv/generate_requirements' failed
make: *** [pipenv/generate_requirements] Error 1
It would be nice if build-harness first checked for pipenv's installation and alerted the user with a message like "your package needs pipenv installed as a dev-dependency" instead of printing this stacktrace.
Creating svc_1966417_501_gateway-cache_1 ... done
Creating svc_1966417_501_gateway-db_1 ... done
Creating svc_1966417_501_gateway_1 ... done
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
Options:
-f, --file FILE Specify an alternate compose file
(default: docker-compose.yml)
-p, --project-name NAME Specify an alternate project name
(default: directory name)
--verbose Show more output
--log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi Do not print ANSI control characters
-v, --version Print version and exit
-H, --host HOST Daemon socket to connect to
--tls Use TLS; implied by --tlsverify
--tlscacert CA_PATH Trust certs signed only by this CA
--tlscert CLIENT_CERT_PATH Path to TLS certificate file
--tlskey TLS_KEY_PATH Path to TLS key file
--tlsverify Use TLS and verify the remote
--skip-hostname-check Don't check the daemon's hostname against the
name specified in the client certificate
--project-directory PATH Specify an alternate working directory
(default: the path of the Compose file)
--compatibility If set, Compose will attempt to convert keys
in v3 files to their non-Swarm equivalent
--env-file PATH Specify an alternate environment file
Commands:
build Build or rebuild services
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker-Compose version information
make[1]: *** [compose/up] Error 1
make: *** [up] Error 2
Follow the same logic as https://prettier.io/docs/en/comparison.html lint should cover both formatting and code quality check. Currently black and isort provide the check of code formating, but the code quality check for issues like unused import is missing
I would like to integrate https://github.com/aquasecurity/trivy
We use this as part of our CI/CD pipelines on Gitlab.
A few important notes:
.trivyignore
fileSee:
We're starting to integrate SAST into gitlab-ci pipelines, but we should also be able to run locally too.
The diff between mintel/alphachai repos is minimal, but the diff between mintel/cloudposse repos is quite large :)
I would prefer the following:
@alphachai (hope this still works!). We're starting a few new projects soon which will want shared Mkefiles, so hoping to put work into build-harness here. We want to figure out ownership first (probably SRE+some devs?).
Keen to get your thoughts on this though - there's no impact if we re-fork against cloudposse right? If end up creating useful PR's into build-harness (even the mintel repo), then you could still pull those in.
Also, was there any advantage in removing un-used modules such as #59 - I feel that removing stuff may lead to conflicts when bringing in upstream changes.
I'm trying to promote running most of our development commands against a docker image.
Typically this would cover
Running the site
Linting
Functional Tests
Unit Tests
e2e Tests
Visual Regression Tests
Coverage
Container Scanning
SAST Scanning
Pipfile locking
Build docs
We shouldn't require python/pipenv/pytest/python etc to be installed locally to be able to develop an app :)
yaml would be better, but I want to rely on standard python only until I get magical package management handled
I've noticed the CI is broken (see #65 )
This might be a good opportunity to review the CI, and also switch to Github actions - main reason for this is that no one is really managing the Travis/Circle integrations from a user-management/accounts point of view.
Github actions would at least get rid of this problem, and I suspect over time integrate nicer with Github's UI.
We use it on some of our Github repos already (SRE team is gradually migration towards it and away from CircleCI for public repos).
For example, python/lint
shouldn't install advbumpversion. Splitting apart the requirements will add a lot of complexity, but I think it's worth trying because it would reduce unnecessary package downloads.
cd /home/travis/build/alphachai/boto3-fixtures/dummy_lambda/dist && zip build.zip pyproject.toml
zip warning: name not matched: pyproject.toml
zip error: Nothing to do! (build.zip)
/home/travis/build/alphachai/boto3-fixtures/build-harness/modules/faas/Makefile:38: recipe for target 'faas/build/python/zip' failed
make[1]: *** [faas/build/python/zip] Error 12
Lack of a pyproject.toml
breaks faas/build/python/zip
.
When unset, some commands fail silently
modules/pipenv Makefiles assume python is always used. This needs to be fixed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.