Sign inSign up

gpgl/test-console

By gpgl

•Updated over 9 years ago

container for testing gpgl console

Image
0

1.1K

gpgl/test-console repository overview

⁠GPL PHP GPG Locker Console

Build Status Codecov Latest Stable Version Total Downloads License

PHP 7 command line symfony console application⁠ to manage passwords and data secured with The GNU Privacy Guard⁠.

⁠Installation

Download the latest release⁠, set it executable:

curl -sSL https://github.com/gpgl/console/releases/latest | egrep -o '/gpgl/console/releases/download/[0-9\.]*/gpgl.phar"' | head -c-2 | wget --base=https://github.com/ -i - -O gpgl && chmod +x gpgl

Move it to a good path. For example: make it available system-wide:

sudo mv gpgl /usr/local/bin/

After installing, run without any arguments to see a list of commands:

gpgl

Use the -h flag with any command to get help with usage:

gpgl <command> -h

⁠Testing

The tests require access to a GPG keyring with specific secret keys present, and the integration suite needs an active server running with database fixtures.

This consistent environment is loaded in the pre-built Docker container⁠.

docker run --rm -it -v "$PWD":/code/console gpgl/test-console

Code coverage HTML reports are generated in the ./tests/coverage folder.

php -S localhost:8686 -t ./tests/coverage/

You can customize the container entry command script in run.bash⁠.

docker run --rm -it -v "$PWD"/tests/docker/run.bash:/run.bash -v "$PWD":/code/console gpgl/test-console

When developing new features which cross-cut console, core, and server, you can mount volumes for all the source directories into the container. It's convenient to locally house all three repositories in one folder.

.
├── console
├── core
└── server

Then delete the core library from the console's vendor directory and symlink your local copy.

rm -rf ./vendor/gpgl/core
ln -s ../../../core/ ./vendor/gpgl/core

Your directory structure should look like this:

.
├── console
│   └── vendor
│       ├── ...
│       └── gpgl
│           └── core -> ../../../core/
├── core
└── server

And finally run the container mounting all your local volumes.

docker run --rm -it -v "$PWD":/code/console -v "$PWD"/../core:/code/core -v "$PWD"/../server:/code/server gpgl/test-console

You may also want to override environment variables for server set in Dockerfile⁠.

If you want to change the server database test fixtures, the sqlite database is mounted at the root of the container.

docker run --rm -it -v /path/to/database.sqlite:/database.sqlite -v "$PWD":/code/console gpgl/test-console

The Dockerfile⁠ is included for customizing fixtures and platform dependencies.

docker build -t gpgl/test-console:MyTag ./tests/docker

Tag summary

Content type

Image

Digest

Size

74.9 MB

Last updated

over 9 years ago

docker pull gpgl/test-console