e2e docker
This commit is contained in:
		
							parent
							
								
									2fdbdb60e6
								
							
						
					
					
						commit
						a9382b67a2
					
				
							
								
								
									
										72
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
			
		||||
name: e2e Test
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - feature/add-tests
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  TEST_PROJECT: ./test_project
 | 
			
		||||
  TEST_HOST_DOCKER: ./test
 | 
			
		||||
  TEST_USER: kaja
 | 
			
		||||
  REMOTE_USER: ''
 | 
			
		||||
  REMOTE_PORT: ''
 | 
			
		||||
  ARGS: ''
 | 
			
		||||
  SOURCE: ''
 | 
			
		||||
  TARGET: ''
 | 
			
		||||
  EXCLUDE: ''
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  e2e:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: 1. Create ssh keys
 | 
			
		||||
        run: |
 | 
			
		||||
          ssh-keygen -m PEM -t rsa -b 4096 -f "$HOME/.ssh/id_rsa" -N ""
 | 
			
		||||
          EXAMPLE_SSH_PRIVATE_KEY=$(cat $HOME/.ssh/id_rsa)
 | 
			
		||||
          echo "EXAMPLE_SSH_PRIVATE_KEY=$EXAMPLE_SSH_PRIVATE_KEY" >> $GITHUB_ENV
 | 
			
		||||
          ssh-add "$HOME/.ssh/id_rsa"
 | 
			
		||||
          ssh-add -l
 | 
			
		||||
 | 
			
		||||
      - name: Build Host Server Image
 | 
			
		||||
        working-directory: $TEST_HOST_DOCKER
 | 
			
		||||
        run: |
 | 
			
		||||
          docker build \
 | 
			
		||||
            -t ssh-host-image . \
 | 
			
		||||
            --build-arg ssh_pub_key="$(cat $HOME/.ssh/id_rsa.pub)" \
 | 
			
		||||
            --build-arg ssh_user=$TEST_USER \
 | 
			
		||||
 | 
			
		||||
      - name: Start Host Server Container
 | 
			
		||||
        working-directory: $TEST_HOST_DOCKER
 | 
			
		||||
        run: |
 | 
			
		||||
          docker run --name ssh-host-container -d ssh-host-image
 | 
			
		||||
 | 
			
		||||
      - name: Get IP of Host Server
 | 
			
		||||
        run: |
 | 
			
		||||
          docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ssh-host-container > ip.txt
 | 
			
		||||
          cat ip.txt
 | 
			
		||||
          EXAMPLE_REMOTE_HOST=$(cat ip.txt)
 | 
			
		||||
          echo "EXAMPLE_REMOTE_HOST=$EXAMPLE_REMOTE_HOST" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
      - name: Create project file
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir $TEST_PROJECT && cd $TEST_PROJECT
 | 
			
		||||
          touch index.html
 | 
			
		||||
          date +"%Y-%m-%d %H:%M:%S,%3N" >> index.html
 | 
			
		||||
          cat index.html
 | 
			
		||||
          
 | 
			
		||||
      - name: e2e Test ssh-deploy action
 | 
			
		||||
        uses: easingthemes/ssh-deploy@main
 | 
			
		||||
        env:
 | 
			
		||||
          SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY
 | 
			
		||||
          ARGS: "-rltgoDzvO"
 | 
			
		||||
          SOURCE: "dist/"
 | 
			
		||||
          REMOTE_HOST: $EXAMPLE_REMOTE_HOST
 | 
			
		||||
          REMOTE_USER: $TEST_USER
 | 
			
		||||
          TARGET: "/var/www/html/"
 | 
			
		||||
          EXCLUDE: "/dist/, /node_modules/"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								.github/workflows/example.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.github/workflows/example.yml
									
									
									
									
										vendored
									
									
								
							@ -1,46 +0,0 @@
 | 
			
		||||
name: e2e Test
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      -  feature/add-tests
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  TEST_PROJECT: ./test_project
 | 
			
		||||
  EXAMPLE_REMOTE_HOST:
 | 
			
		||||
  REMOTE_USER:
 | 
			
		||||
  REMOTE_PORT:
 | 
			
		||||
  ARGS:
 | 
			
		||||
  SOURCE:
 | 
			
		||||
  TARGET:
 | 
			
		||||
  EXCLUDE: ''
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  host:
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ ubuntu-latest ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      - name: Get Host info
 | 
			
		||||
        run: |
 | 
			
		||||
          ls -l
 | 
			
		||||
          ip addr show
 | 
			
		||||
          whoami
 | 
			
		||||
      - name: 1. Create ssh keys
 | 
			
		||||
        run: |
 | 
			
		||||
          ssh-keygen -m PEM -t rsa -b 4096 -f "$HOME/.ssh/id_rsa" -N ""
 | 
			
		||||
        shell: bash
 | 
			
		||||
      - name: Create project file
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir $TEST_PROJECT && cd $TEST_PROJECT
 | 
			
		||||
          touch index.html
 | 
			
		||||
          date +"%Y-%m-%d %H:%M:%S,%3N" >> index.html
 | 
			
		||||
          cat index.html
 | 
			
		||||
        shell: bash
 | 
			
		||||
							
								
								
									
										5
									
								
								test/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/.dockerignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
/node_modules
 | 
			
		||||
.gitignore
 | 
			
		||||
.gitattributes
 | 
			
		||||
LICENSE
 | 
			
		||||
README.md
 | 
			
		||||
							
								
								
									
										11
									
								
								test/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
FROM nginx
 | 
			
		||||
# Set args to get from Gtihub Action
 | 
			
		||||
ARG ssh_pub_key
 | 
			
		||||
ARG ssh_user
 | 
			
		||||
# Add a user to the container
 | 
			
		||||
RUN adduser -D $ssh_user
 | 
			
		||||
USER $ssh_user
 | 
			
		||||
# Add the ssh public key to the container
 | 
			
		||||
RUN mkdir -p $HOME/.ssh
 | 
			
		||||
RUN echo "$ssh_pub_key" > $HOME/.ssh/authorized_keys
 | 
			
		||||
RUN chmod 700 $HOME/.ssh
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user