Add optional support for running end-to-end tests and building documentation with rootless Podman instead of Docker.
This commit is contained in:
parent
d6ef0df50d
commit
31a2ac914a
5 changed files with 51 additions and 7 deletions
2
NEWS
2
NEWS
|
@ -7,6 +7,8 @@
|
||||||
"match_archives" configuration option for the "transfer", "list", "rlist", and "info" actions.
|
"match_archives" configuration option for the "transfer", "list", "rlist", and "info" actions.
|
||||||
* #668: Fix error when running the "prune" action with both "archive_name_format" and "prefix"
|
* #668: Fix error when running the "prune" action with both "archive_name_format" and "prefix"
|
||||||
options set.
|
options set.
|
||||||
|
* Add optional support for running end-to-end tests and building documentation with rootless Podman
|
||||||
|
instead of Docker.
|
||||||
|
|
||||||
1.7.11
|
1.7.11
|
||||||
* #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
|
* #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM alpine:3.17.1 as borgmatic
|
FROM docker.io/alpine:3.17.1 as borgmatic
|
||||||
|
|
||||||
COPY . /app
|
COPY . /app
|
||||||
RUN apk add --no-cache py3-pip py3-ruamel.yaml py3-ruamel.yaml.clib
|
RUN apk add --no-cache py3-pip py3-ruamel.yaml py3-ruamel.yaml.clib
|
||||||
|
@ -8,7 +8,7 @@ RUN borgmatic --help > /command-line.txt \
|
||||||
echo -e "\n--------------------------------------------------------------------------------\n" >> /command-line.txt \
|
echo -e "\n--------------------------------------------------------------------------------\n" >> /command-line.txt \
|
||||||
&& borgmatic "$action" --help >> /command-line.txt; done
|
&& borgmatic "$action" --help >> /command-line.txt; done
|
||||||
|
|
||||||
FROM node:19.5.0-alpine as html
|
FROM docker.io/node:19.5.0-alpine as html
|
||||||
|
|
||||||
ARG ENVIRONMENT=production
|
ARG ENVIRONMENT=production
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ COPY . /source
|
||||||
RUN NODE_ENV=${ENVIRONMENT} npx eleventy --input=/source/docs --output=/output/docs \
|
RUN NODE_ENV=${ENVIRONMENT} npx eleventy --input=/source/docs --output=/output/docs \
|
||||||
&& mv /output/docs/index.html /output/index.html
|
&& mv /output/docs/index.html /output/index.html
|
||||||
|
|
||||||
FROM nginx:1.22.1-alpine
|
FROM docker.io/nginx:1.22.1-alpine
|
||||||
|
|
||||||
COPY --from=html /output /usr/share/nginx/html
|
COPY --from=html /output /usr/share/nginx/html
|
||||||
COPY --from=borgmatic /etc/borgmatic/config.yaml /usr/share/nginx/html/docs/reference/config.yaml
|
COPY --from=borgmatic /etc/borgmatic/config.yaml /usr/share/nginx/html/docs/reference/config.yaml
|
||||||
|
|
|
@ -101,6 +101,30 @@ scripts/run-end-to-end-dev-tests
|
||||||
Note that this scripts assumes you have permission to run Docker. If you
|
Note that this scripts assumes you have permission to run Docker. If you
|
||||||
don't, then you may need to run with `sudo`.
|
don't, then you may need to run with `sudo`.
|
||||||
|
|
||||||
|
|
||||||
|
#### Podman
|
||||||
|
|
||||||
|
<span class="minilink minilink-addedin">New in version 1.7.12</span>
|
||||||
|
borgmatic's end-to-end tests optionally support using
|
||||||
|
[rootless](https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md)
|
||||||
|
[Podman](https://podman.io/) instead of Docker.
|
||||||
|
|
||||||
|
Setting up Podman is outside the scope of this documentation, but here are
|
||||||
|
some key points to double-check:
|
||||||
|
|
||||||
|
* Install Podman along with `podman-docker` and your desired networking
|
||||||
|
support.
|
||||||
|
* Configure `/etc/subuid` and `/etc/subgid` to map users/groups for the
|
||||||
|
non-root user who will run tests.
|
||||||
|
* Create a non-root Podman socket for that user:
|
||||||
|
```bash
|
||||||
|
systemctl --user enable --now podman.socket
|
||||||
|
```
|
||||||
|
|
||||||
|
Then you'll be able to run end-to-end tests as per normal, and the test script
|
||||||
|
will automatically use your non-root Podman socket instead of a Docker socket.
|
||||||
|
|
||||||
|
|
||||||
## Code style
|
## Code style
|
||||||
|
|
||||||
Start with [PEP 8](https://www.python.org/dev/peps/pep-0008/). But then, apply
|
Start with [PEP 8](https://www.python.org/dev/peps/pep-0008/). But then, apply
|
||||||
|
@ -149,3 +173,15 @@ http://localhost:8080 to view the documentation with your changes.
|
||||||
To close the documentation server, ctrl-C the script. Note that it does not
|
To close the documentation server, ctrl-C the script. Note that it does not
|
||||||
currently auto-reload, so you'll need to stop it and re-run it for any
|
currently auto-reload, so you'll need to stop it and re-run it for any
|
||||||
additional documentation changes to take effect.
|
additional documentation changes to take effect.
|
||||||
|
|
||||||
|
|
||||||
|
#### Podman
|
||||||
|
|
||||||
|
<span class="minilink minilink-addedin">New in version 1.7.12</span>
|
||||||
|
borgmatic's developer build for documentation optionally supports using
|
||||||
|
[rootless](https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md)
|
||||||
|
[Podman](https://podman.io/) instead of Docker.
|
||||||
|
|
||||||
|
Setting up Podman is outside the scope of this documentation. But once you
|
||||||
|
install `podman-docker`, then `scripts/dev-docs` should automatically use
|
||||||
|
Podman instead of Docker.
|
||||||
|
|
|
@ -10,5 +10,11 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
USER_PODMAN_SOCKET_PATH=/run/user/$UID/podman/podman.sock
|
||||||
|
|
||||||
|
if [ -e "$USER_PODMAN_SOCKET_PATH" ]; then
|
||||||
|
export DOCKER_HOST="unix://$USER_PODMAN_SOCKET_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
docker-compose --file tests/end-to-end/docker-compose.yaml up --force-recreate \
|
docker-compose --file tests/end-to-end/docker-compose.yaml up --force-recreate \
|
||||||
--renew-anon-volumes --abort-on-container-exit
|
--renew-anon-volumes --abort-on-container-exit
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:13.1-alpine
|
image: docker.io/postgres:13.1-alpine
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: test
|
POSTGRES_PASSWORD: test
|
||||||
POSTGRES_DB: test
|
POSTGRES_DB: test
|
||||||
mysql:
|
mysql:
|
||||||
image: mariadb:10.5
|
image: docker.io/mariadb:10.5
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: test
|
MYSQL_ROOT_PASSWORD: test
|
||||||
MYSQL_DATABASE: test
|
MYSQL_DATABASE: test
|
||||||
mongodb:
|
mongodb:
|
||||||
image: mongo:5.0.5
|
image: docker.io/mongo:5.0.5
|
||||||
environment:
|
environment:
|
||||||
MONGO_INITDB_ROOT_USERNAME: root
|
MONGO_INITDB_ROOT_USERNAME: root
|
||||||
MONGO_INITDB_ROOT_PASSWORD: test
|
MONGO_INITDB_ROOT_PASSWORD: test
|
||||||
tests:
|
tests:
|
||||||
image: alpine:3.13
|
image: docker.io/alpine:3.13
|
||||||
environment:
|
environment:
|
||||||
TEST_CONTAINER: true
|
TEST_CONTAINER: true
|
||||||
volumes:
|
volumes:
|
||||||
|
|
Loading…
Reference in a new issue