aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/.ci
diff options
context:
space:
mode:
Diffstat (limited to '.ci')
-rw-r--r--.ci/docker/.dockerignore5
-rw-r--r--.ci/docker/client/etc/cgitize.toml4
-rw-r--r--.ci/docker/client/output/.gitignore1
-rw-r--r--.ci/docker/docker-compose.yml16
-rw-r--r--.ci/docker/server/Dockerfile22
-rwxr-xr-x.ci/docker/server/setup_repo.sh29
-rw-r--r--.ci/docker/ssh/client_key8
-rw-r--r--.ci/docker/ssh/client_key.pub1
-rw-r--r--.ci/docker/ssh/server_key7
-rw-r--r--.ci/docker/ssh/server_key.pub1
-rwxr-xr-x.ci/docker/test.sh132
-rwxr-xr-x.ci/local/test.sh229
12 files changed, 0 insertions, 455 deletions
diff --git a/.ci/docker/.dockerignore b/.ci/docker/.dockerignore
deleted file mode 100644
index c0cb0ce..0000000
--- a/.ci/docker/.dockerignore
+++ /dev/null
@@ -1,5 +0,0 @@
-*
-
-!/server/**
-/server/Dockerfile
-!/ssh/**
diff --git a/.ci/docker/client/etc/cgitize.toml b/.ci/docker/client/etc/cgitize.toml
deleted file mode 100644
index 4e8fda7..0000000
--- a/.ci/docker/client/etc/cgitize.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-[repositories.test_repo]
-
-name = "test_repo"
-clone_url = "root@server:~/test_repo"
diff --git a/.ci/docker/client/output/.gitignore b/.ci/docker/client/output/.gitignore
deleted file mode 100644
index 355164c..0000000
--- a/.ci/docker/client/output/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*/
diff --git a/.ci/docker/docker-compose.yml b/.ci/docker/docker-compose.yml
deleted file mode 100644
index 6054764..0000000
--- a/.ci/docker/docker-compose.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '3'
-services:
- server:
- build:
- context: .
- dockerfile: server/Dockerfile
- image: server
- client:
- build:
- context: ../..
- dockerfile: Dockerfile
- image: client
- volumes:
- - ./client/etc/:/etc/cgitize:ro
- - "$SSH_AUTH_SOCK:/var/run/cgitize/ssh-agent.sock"
- - ./client/output:/var/tmp/cgitize/output
diff --git a/.ci/docker/server/Dockerfile b/.ci/docker/server/Dockerfile
deleted file mode 100644
index a6283d0..0000000
--- a/.ci/docker/server/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-FROM alpine:3.11
-
-RUN apk --no-cache add bash git openssh-server && \
- echo 'root:root' | chpasswd && \
- git config --global user.name 'John Doe' && \
- git config --global user.email 'John.Doe@example.com' && \
- sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
-
-WORKDIR /root
-
-COPY ["ssh/server_key", "/etc/ssh/ssh_host_ed25519_key"]
-COPY ["ssh/server_key.pub", "/etc/ssh/ssh_host_ed25519_key.pub"]
-COPY ["ssh/client_key.pub", "./.ssh/authorized_keys"]
-
-RUN chmod 0600 -- /etc/ssh/ssh_host_ed25519_key && \
- chmod 0700 -- ./.ssh/ && \
- chmod 0600 -- ./.ssh/authorized_keys
-
-COPY ["server/setup_repo.sh", "./"]
-RUN ./setup_repo.sh
-
-CMD ["/usr/sbin/sshd", "-D"]
diff --git a/.ci/docker/server/setup_repo.sh b/.ci/docker/server/setup_repo.sh
deleted file mode 100755
index 82ae711..0000000
--- a/.ci/docker/server/setup_repo.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit -o nounset -o pipefail
-
-readonly local_repo_path="$HOME/test_repo"
-
-setup_local_repo() {
- echo
- echo ----------------------------------------------------------------------
- echo Setting up upstream repository
- echo ----------------------------------------------------------------------
-
- mkdir -p -- "$local_repo_path"
- pushd -- "$local_repo_path" > /dev/null
- git init
- echo '1' > 1.txt
- git add .
- git commit -m 'first commit'
- echo '2' > 2.txt
- git add .
- git commit -m 'second commit'
- popd > /dev/null
-}
-
-main() {
- setup_local_repo
-}
-
-main
diff --git a/.ci/docker/ssh/client_key b/.ci/docker/ssh/client_key
deleted file mode 100644
index 7502c82..0000000
--- a/.ci/docker/ssh/client_key
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABC0VWjnPC
-6+rVnkkogRW2onAAAAZAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIDkpIMideN05ni89
-cmRjdbff6fj4qyukThD2X/gINlVMAAAAkOVOKvBjvIbIoc9JA2q8ui62PqP6dQwwsR94Vr
-/czMBQah5jFKdH9vDiI2JLaGjoH4VvT9mzuPBoE0Vchk6MEpud2dNXWMdb2ubG1d9yTWfV
-XhMXMeNd6UEjY7ypsldhR2X55dvIFeNr9B6A8dMy1Qpeyd62maBOwNdumbsG6MalXOFuv7
-srvnjlwUdHKZV9wg==
------END OPENSSH PRIVATE KEY-----
diff --git a/.ci/docker/ssh/client_key.pub b/.ci/docker/ssh/client_key.pub
deleted file mode 100644
index 6b0e3e9..0000000
--- a/.ci/docker/ssh/client_key.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDkpIMideN05ni89cmRjdbff6fj4qyukThD2X/gINlVM root@client
diff --git a/.ci/docker/ssh/server_key b/.ci/docker/ssh/server_key
deleted file mode 100644
index 07774eb..0000000
--- a/.ci/docker/ssh/server_key
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
-QyNTUxOQAAACCXhJs2H7dvamDdK51mhWEAGuXnBsCVEKdWxyPjWYNgigAAAJDx95CI8feQ
-iAAAAAtzc2gtZWQyNTUxOQAAACCXhJs2H7dvamDdK51mhWEAGuXnBsCVEKdWxyPjWYNgig
-AAAEBkubMLhAF/0hCKnq2l3BuexD4UIQ+qcXW5ke+DWhQ8DJeEmzYft29qYN0rnWaFYQAa
-5ecGwJUQp1bHI+NZg2CKAAAAC3Jvb3RAc2VydmVyAQI=
------END OPENSSH PRIVATE KEY-----
diff --git a/.ci/docker/ssh/server_key.pub b/.ci/docker/ssh/server_key.pub
deleted file mode 100644
index 601277f..0000000
--- a/.ci/docker/ssh/server_key.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJeEmzYft29qYN0rnWaFYQAa5ecGwJUQp1bHI+NZg2CK root@server
diff --git a/.ci/docker/test.sh b/.ci/docker/test.sh
deleted file mode 100755
index 7c76298..0000000
--- a/.ci/docker/test.sh
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit -o nounset -o pipefail
-
-script_dir="$( dirname -- "${BASH_SOURCE[0]}" )"
-script_dir="$( cd -- "$script_dir" && pwd )"
-readonly script_dir
-script_name="$( basename -- "${BASH_SOURCE[0]}" )"
-readonly script_name
-
-dump() {
- local prefix="${FUNCNAME[0]}"
- [ "${#FUNCNAME[@]}" -gt 1 ] && prefix="${FUNCNAME[1]}"
-
- local msg
- for msg; do
- echo "$script_name: $prefix: $msg"
- done
-}
-
-kill_ssh_agent() {
- [ -n "${SSH_AGENT_PID:+x}" ] || return 0
- dump "killing ssh-agent with PID $SSH_AGENT_PID"
- kill "$SSH_AGENT_PID"
-}
-
-spawn_ssh_agent() {
- [ -n "${SSH_AGENT_PID:+x}" ] && return 0
- if ! command -v ssh-agent > /dev/null 2>&1; then
- dump "could not find ssh-agent" >&2
- return 1
- fi
- local output
- output="$( ssh-agent -s )"
- eval "$output"
- if [ -z "${SSH_AGENT_PID:+x}" ]; then
- dump "could not start ssh-agent" >&2
- return 1
- fi
- trap kill_ssh_agent EXIT
-}
-
-setup_ssh_agent() {
- echo
- echo ----------------------------------------------------------------------
- echo Setting up ssh-agent
- echo ----------------------------------------------------------------------
-
- spawn_ssh_agent
-
- local key='ssh/client_key'
- chmod 0600 -- "$key"
- local password='password'
-
- local askpass_path
- askpass_path="$( mktemp --tmpdir="$script_dir" )"
-
- local askpass_rm
- askpass_rm="$( printf -- 'rm -- %q; trap - RETURN' "$askpass_path" )"
- trap "$askpass_rm" RETURN
-
- chmod 0700 -- "$askpass_path"
-
- local echo_password
- echo_password="$( printf -- 'echo %q' "$password" )"
- echo "$echo_password" > "$askpass_path"
-
- SSH_ASKPASS="$askpass_path" SSH_ASKPASS_REQUIRE=force DISPLAY= ssh-add "$key" > /dev/null 2>&1 < /dev/null
-}
-
-docker_build() {
- echo
- echo ----------------------------------------------------------------------
- echo Building Docker images
- echo ----------------------------------------------------------------------
-
- docker-compose build
-}
-
-setup() {
- setup_ssh_agent
- docker_build
-}
-
-run_server() {
- echo
- echo ----------------------------------------------------------------------
- echo Running the server
- echo ----------------------------------------------------------------------
-
- docker-compose up -d server
-}
-
-run_client() {
- echo
- echo ----------------------------------------------------------------------
- echo Running the client
- echo ----------------------------------------------------------------------
-
- if [ -z "${SSH_AUTH_SOCK:+x}" ]; then
- dump 'SSH_AUTH_SOCK is not defined' >&2
- return 1
- fi
- dump "SSH_AUTH_SOCK: $SSH_AUTH_SOCK"
- docker-compose run --rm client
-}
-
-run() {
- run_server
- run_client
-}
-
-verify() {
- echo
- echo ----------------------------------------------------------------------
- echo Checking the pulled repository
- echo ----------------------------------------------------------------------
-
- pushd -- "$script_dir/client/output/test_repo" > /dev/null
- git log --oneline
- popd > /dev/null
-}
-
-main() {
- pushd -- "$script_dir" > /dev/null
- setup
- run
- verify
- popd > /dev/null
-}
-
-main
diff --git a/.ci/local/test.sh b/.ci/local/test.sh
deleted file mode 100755
index 088539b..0000000
--- a/.ci/local/test.sh
+++ /dev/null
@@ -1,229 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit -o nounset -o pipefail
-
-script_dir="$( dirname -- "${BASH_SOURCE[0]}" )"
-script_dir="$( cd -- "$script_dir" && pwd )"
-readonly script_dir
-
-upstream_repo_dir=
-readonly etc_dir="$script_dir/etc"
-readonly cgitize_toml_path="$etc_dir/cgitize.toml"
-readonly output_dir="$script_dir/output"
-
-cleanup() {
- echo
- echo ----------------------------------------------------------------------
- echo Cleaning up
- echo ----------------------------------------------------------------------
-
- echo "Removing upstream repository directory: $upstream_repo_dir"
- rm -rf -- "$upstream_repo_dir"
- echo "Removing etc directory: $etc_dir"
- rm -rf -- "$etc_dir"
- echo "Removing output directory: $output_dir"
- rm -rf -- "$output_dir"
-}
-
-setup_upstream_repo() {
- echo
- echo ----------------------------------------------------------------------
- echo Setting up upstream repository
- echo ----------------------------------------------------------------------
-
- upstream_repo_dir="$( mktemp -d )"
- pushd -- "$upstream_repo_dir" > /dev/null
-
- git init
- echo '1' > 1.txt
- git add .
- git commit -m 'first commit'
- echo '2' > 2.txt
- git add .
- git commit -m 'second commit'
-
- popd > /dev/null
-}
-
-add_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Adding new commits
- echo ----------------------------------------------------------------------
-
- pushd -- "$upstream_repo_dir" > /dev/null
-
- echo '3' > 3.txt
- git add .
- git commit -m 'third commit'
-
- popd > /dev/null
-}
-
-setup_cgitize_toml() {
- echo
- echo ----------------------------------------------------------------------
- echo cgitize.toml
- echo ----------------------------------------------------------------------
-
- local conf_dir
- conf_dir="$( dirname -- "$cgitize_toml_path" )"
- mkdir -p -- "$conf_dir"
-
- cat <<EOF | tee "$cgitize_toml_path"
-output_dir = "$output_dir"
-
-[repositories.test_repo]
-name = "test_repo"
-clone_url = "$upstream_repo_dir"
-EOF
-}
-
-setup_cgitize() {
- setup_cgitize_toml
-}
-
-setup_bare() {
- setup_upstream_repo
- setup_cgitize
-}
-
-setup_workdir() {
- setup_bare
-
- echo
- echo ----------------------------------------------------------------------
- echo Setting up local repository clone
- echo ----------------------------------------------------------------------
-
- mkdir -p -- "$output_dir"
- git clone --quiet -- "$upstream_repo_dir" "$output_dir/test_repo"
-}
-
-cgitize() {
- echo
- echo ----------------------------------------------------------------------
- echo Running cgitize
- echo ----------------------------------------------------------------------
-
- python3 -m cgitize.main --config "$cgitize_toml_path" --verbose
-}
-
-check_contains() {
- if [ "$#" -lt 1 ]; then
- echo "usage: ${FUNCNAME[0]} TEST_STRING [PATTERN...]" >&2
- return 1
- fi
-
- local test_string="$1"
- shift
-
- local pattern
- for pattern; do
- # Be careful to _not_ use grep -q, since this fucks stuff up:
- # https://mywiki.wooledge.org/BashPitfalls#pipefail.
- if ! echo "$test_string" | grep --fixed-strings -- "$pattern" > /dev/null; then
- echo "${FUNCNAME[0]}: couldn't find the following pattern: $pattern" >&2
- return 1
- fi
- done
-}
-
-verify_commits() {
- # This is fucking stupid, but otherwise stuff like `if verify_commits;`
- # doesn't work: https://stackoverflow.com/q/4072984/514684
- # TODO: figure this out?
- pushd -- "$output_dir" > /dev/null &&
- cd -- test_repo &&
- local output &&
- output="$( git log --oneline )" &&
- echo "$output" &&
- check_contains "$output" "$@" &&
- popd > /dev/null
-}
-
-verify_initial_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Checking the initial commits
- echo ----------------------------------------------------------------------
-
- verify_commits 'first commit' 'second commit'
-}
-
-verify_added_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Checking the added commits
- echo ----------------------------------------------------------------------
-
- verify_commits 'first commit' 'second commit' 'third commit'
-}
-
-test_bare() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_bare
- cgitize
- verify_initial_commits
- add_commits
- cgitize
- verify_added_commits
- cleanup
-}
-
-test_workdir() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_workdir
- cgitize
- verify_initial_commits
- add_commits
- cgitize
- verify_added_commits
- cleanup
-}
-
-test_failure() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_bare
- cgitize
- verify_initial_commits
- add_commits
-
- echo
- echo ----------------------------------------------------------------------
- echo Removing upstream repository
- echo ----------------------------------------------------------------------
- rm -rf -- "$upstream_repo_dir"
-
- if cgitize; then
- echo "cgitize should have failed to pull the upstream repository." >&2
- return 1
- fi
- verify_initial_commits
- if verify_added_commits; then
- echo "The added commits should not have been pulled." >&2
- return 1
- fi
- cleanup
-}
-
-main() {
- trap cleanup EXIT
- test_bare
- test_workdir
- test_failure
-}
-
-main