Kumi
78fcec897e
Some checks failed
Test! / test (push) Failing after 1m45s
Ensured the SSH server Docker container is always rebuilt from a clean state by forcefully removing any pre-existing container before creation. Additionally, updated the SSH connection user to 'replication' to align with new security protocols. - The force removal of the existing 'ssh-server' container avoids potential conflicts or inconsistencies due to leftover state from previous test runs, ensuring a more reliable integration testing environment. - Switching the SSH connection to use the 'replication' user account instead of 'root' enhances security and adheres to best practices by minimizing the use of elevated privileges. These changes contribute to a more stable and secure CI pipeline by reducing flakiness in tests and aligning with security best practices.
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
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: Install Docker
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y docker.io
|
|
|
|
- name: Build and run SSH Server Docker Container
|
|
run: |
|
|
docker rm -f ssh-server || true
|
|
docker build -t my-ssh-server ./ci-tests/
|
|
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: |
|
|
mkdir -p ~/.ssh
|
|
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 replication@localhost echo "SSH connection successful"
|