diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..c7a8800 --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,38 @@ +name: Test! + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Generate SSH key pair + run: | + ssh-keygen -t rsa -b 4096 -f my_ssh_key -N "" + + - name: Build and run SSH Server Docker Container + run: | + docker build -t my-ssh-server ./ci-tests/Dockerfile + docker run -d -p 2222:22 --name ssh-server my-ssh-server + + - name: Copy public key to Docker container + run: | + docker cp my_ssh_key.pub ssh-server:/home/replication/.ssh/authorized_keys + docker exec ssh-server chown replication:replication /home/replication/.ssh/authorized_keys + docker exec ssh-server chmod 600 /home/replication/.ssh/authorized_keys + + - name: Trust SSH server's host key (to prevent interactive prompt) + run: | + ssh-keyscan -p 2222 -H localhost >> ~/.ssh/known_hosts + + - name: Connect to SSH server using SSH key + run: | + ssh -i my_ssh_key -p 2222 root@localhost echo "SSH connection successful" diff --git a/ci-tests/Dockerfile b/ci-tests/Dockerfile new file mode 100644 index 0000000..68f7e94 --- /dev/null +++ b/ci-tests/Dockerfile @@ -0,0 +1,10 @@ +FROM debian:latest +RUN apt-get update && apt-get install -y openssh-server + +RUN useradd -m replication && mkdir -p /home/replication/.ssh && chown -R replication:replication /home/replication/.ssh + +RUN mkdir /var/run/sshd + +EXPOSE 22 + +CMD ["/usr/sbin/sshd", "-D"] \ No newline at end of file