Giter VIP home page Giter VIP logo

build-harness's People

Contributors

aknysh avatar alebabai avatar aspage2 avatar awichmann-mintel avatar charlieparkes avatar chavlin avatar daveyu avatar dependabot[bot] avatar ekishchukova avatar goruha avatar jonboulle avatar jtdoepke avatar liamcato avatar moonmoon1919 avatar osterman avatar rverma-nikiai avatar sarkis avatar solairerove avatar tamsky avatar vadim-hleif avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

build-harness's Issues

Should isort be included as default lint target?

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?

make dist depends on pipenv but the messaging is kinda bad

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.

Compose commands crash (after running succesfully?) as if docker-compose was called incorrectly

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

Merge in upstream, and understand what upstream we should refer to

The diff between mintel/alphachai repos is minimal, but the diff between mintel/cloudposse repos is quite large :)

I would prefer the following:

  • Fork from cloudposse, since that's going to be getting regular changes
  • Maintain build-harness in such a way that bringing in upstream changes has minimal (or no) conflicts. If we're always having to deal with conflicts, then no one is going to want to maintain this :)

@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.

Support running (most) commands against docker image

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 :)

Fix CI (and switch to Github actions?)

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).

https://docs.github.com/en/free-pro-team@latest/actions

py.toml changes are breaking faas commands

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.