changes #131
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: EC2 Deploy | |
on: | |
push: | |
branches: | |
- "*" | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.ref }} | |
- name: Create SSH | |
run: | | |
bash -c 'mkdir -p ~/.ssh/ && echo "${{ secrets.MY_SECRET_SSH_KEY }}" > ~/.ssh/secretKey.pem && chmod 400 ~/.ssh/secretKey.pem' | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Build Docker image | |
run: | | |
docker build -t mesgna/my-video-adder:latest -f server/dockerfile . | |
- name: Push Docker image to Docker Hub | |
run: | | |
docker push mesgna/my-video-adder:latest | |
- name: Connect to EC2 and Run Container | |
run: | | |
ssh -i ~/.ssh/secretKey.pem -o StrictHostKeyChecking=no [email protected] <<'EOF' | |
# Remove old Docker images except the latest one | |
docker images --filter "dangling=true" --filter=reference='mesgna/my-video-adder*' -q \ | |
| grep -v "$(docker images --filter=reference='mesgna/my-video-adder:latest' -q)" \ | |
| xargs -r docker rmi -f | |
# Stop and remove existing container (handle potential errors) | |
docker stop my-video-adder || true | |
docker rm my-video-adder || true | |
# Pull the latest Docker image | |
docker pull mesgna/my-video-adder:latest | |
# Run the new container with environment variables from GitHub Secrets | |
docker run -d -p 5000:5000 \ | |
-e DB_USER=postgres \ | |
-e DB_HOST=video-db.c9wqsescwhbl.eu-west-2.rds.amazonaws.com \ | |
-e DB_NAME=videos-db \ | |
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \ | |
-e DB_PORT=5432 \ | |
--name my-video-adder mesgna/my-video-adder:latest | |
EOF |