diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml new file mode 100644 index 0000000..0c345df --- /dev/null +++ b/.github/workflows/CD.yml @@ -0,0 +1,50 @@ +name: CD + +on: + push: + branches: + - test_cd + +jobs: + push_image_to_docker_hub: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Checkout the repo + uses: actions/checkout@v3 + - name: Docker meta + id: docker_meta + uses: docker/metadata-action@v5.0.0 + with: + images: sonny93/my-links + flavor: latest=true + tags: | + type=sha,prefix= + - name: Login to DockerHub + uses: docker/login-action@v3.0.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and push + uses: docker/build-push-action@v5.0.0 + with: + file: ./Dockerfile + context: . + push: true + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }} + + execute_commands_via_ssh: + name: Pull latest docker image and start up the application with Docker Compose + runs-on: ubuntu-latest + needs: push_image_to_docker_hub + steps: + - name: Executing remote ssh commands + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_KEY }} + script: | + docker pull docker.io/sonny93/my-links:latest + docker compose up -d diff --git a/README.md b/README.md index b831dfb..57bdaf6 100644 --- a/README.md +++ b/README.md @@ -34,3 +34,15 @@ cd docker make build make start-prod ``` + +## Github Actions + +Env var to define : + +``` +DOCKER_USERNAME="Your docker username" +DOCKER_PASSWORD="Your docker password" +SSH_HOST="Your SSH host" +SSH_USERNAME="Your SSH username" +SSH_KEY="Your SSH key" +```