Instead of using Dockerfile for everything, we've introduced a docker-compose.yml file and kept the Dockerfile to producing a pure base image for the services defined. docker-compose services: - `mariadb` - Setup mariadb - `sharness` - Run sharness suites - `pytest-mysql` - Run pytest suites with MariaDB - `pytest-sqlite` - Run pytest suites with SQLite - `test` - Run all tests and produce a collective coverage report - This target mounts a cache volume and copies any successful coverage report back to `./cache/.coverage`. Users can run `./util/fix-coverage ./cache/.coverage` to rewrite source code paths and move coverage into place to view reports on your local system. == Get Started == Build `aurweb:latest`. $ docker build -t aurweb:latest . Run all tests via `docker-compose`. $ docker-compose up test You can also purely run `pytest` in SQLite or MariaDB modes. $ docker-compose up pytest-sqlite $ docker-compose up pytest-mysql Or `sharness` alone, which only uses SQLite internally. $ docker-compose up sharness After running tests, coverage reports are stored in `./cache/.coverage`. This database was most likely created in a different path, and so it needs to be sanitized with `./util/fix-coverage`. $ ./util/fix-coverage cache/.coverage Copied coverage db to /path/to/aurweb/.coverage. $ coverage report ... $ coverage html $ coverage xml ... Defined components: **Entrypoints** - mariadb-entrypoint.sh - setup mariadb and run its daemon - test-mysql-entrypoint.sh - setup mysql configurations - test-sqlite-entrypoint.sh - setup sqlite configurations - tests-entrypoint.sh - setup mysql and sqlite configurations **Scripts** - run-mariadb.sh - setup databases - run-pytests.sh - run pytest suites - run-sharness.sh - run sharness suites - run-tests.sh - run both pytests and sharness **Health** - mariadb.sh - A healthcheck script for the mariadb service - pytest.sh - A healthcheck script for the pytest-* services - sharness.sh - A healthcheck script for the sharness service This Docker configuration is setup for tests, but should be extendable for web and git servers. **Changes to Makefile** - Remove `.coverage` in the `clean` target - Add a `coverage` target which prints a report and outputs xml Signed-off-by: Kevin Morris <kevr@0cost.org> |
||
---|---|---|
.tx | ||
aurweb | ||
cache | ||
conf | ||
doc | ||
docker | ||
migrations | ||
po | ||
schema | ||
templates | ||
test | ||
upgrading | ||
util | ||
web | ||
.coveragerc | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
.mailmap | ||
.pre-commit-config.yaml | ||
alembic.ini | ||
AUTHORS | ||
CONTRIBUTING.md | ||
COPYING | ||
docker-compose.yml | ||
Dockerfile | ||
INSTALL | ||
logging.conf | ||
README.md | ||
setup.cfg | ||
setup.py | ||
TESTING |
aurweb
aurweb is a hosting platform for the Arch User Repository (AUR), a collection
of packaging scripts that are created and submitted by the Arch Linux
community. The scripts contained in the repository can be built using makepkg
and installed using the Arch Linux package manager pacman
.
The aurweb project includes
- A web interface to search for packaging scripts and display package details.
- An SSH/Git interface to submit and update packages and package meta data.
- Community features such as comments, votes, package flagging and requests.
- Editing/deletion of packages and accounts by Trusted Users and Developers.
- Area for Trusted Users to post AUR-related proposals and vote on them.
Directory Layout
aurweb
: aurweb Python modules, Git interface and maintenance scriptsconf
: configuration and configuration templatesstatic
: static resource filestemplates
: jinja2 template collectiondoc
: project documentationpo
: translation files for strings in the aurweb interfaceschema
: schema for the SQL databasetest
: test suite and test casesupgrading
: instructions for upgrading setups from one release to anotherweb
: PHP-based web interface for the AUR
Links
-
The repository is hosted at git://git.archlinux.org/aurweb.git -- see doc/CodingGuidelines for information on the patch submission process.
-
Bugs can (and should) be submitted to the aurweb bug tracker: https://bugs.archlinux.org/index.php?project=2
-
Questions, comments, and patches related to aurweb can be sent to the AUR development mailing list: aur-dev@archlinux.org -- mailing list archives: https://mailman.archlinux.org/mailman/listinfo/aur-dev
Translations
Translations are welcome via our Transifex project at
https://www.transifex.com/lfleischer/aurweb; see doc/i18n.txt
for details.
Testing
See test/README.md for details on dependencies and testing.