Release copy (#98) #33
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: Docker Build & Push and Deploy to volume-backend | |
on: | |
push: | |
branches: [release] | |
pull_request: | |
branches: [release] | |
jobs: | |
path-context: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Get SHA | |
id: vars | |
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
- name: Docker Build & Push | |
uses: docker/build-push-action@v2 | |
with: | |
context: ./ | |
file: ./Dockerfile | |
push: true | |
tags: cornellappdev/volume-prod:${{ steps.vars.outputs.sha_short }} | |
- name: Remote SSH and Deploy | |
uses: appleboy/ssh-action@master | |
env: | |
IMAGE_TAG: ${{ steps.vars.outputs.sha_short }} | |
with: | |
host: ${{ secrets.PROD_SERVER_HOST }} | |
username: ${{ secrets.SERVER_USERNAME }} | |
key: ${{ secrets.PROD_SERVER_KEY }} | |
script: | | |
touch tags | |
source tags | |
export IMAGE_TAG=${{ steps.vars.outputs.sha_short }} | |
echo "export IMAGE_TAG=${IMAGE_TAG}" > tags | |
echo "export MICROSERVICE_IMAGE_TAG=${MICROSERVICE_IMAGE_TAG}" >> tags | |
cd docker-compose | |
docker stack rm the-stack | |
sleep 20s | |
sudo systemctl stop nginx | |
sudo systemctl restart nginx | |
docker stack deploy -c docker-compose.yml the-stack | |
yes | docker system prune -a |