diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml new file mode 100644 index 0000000..8bd619e --- /dev/null +++ b/.github/workflows/deploy-prod.yml @@ -0,0 +1,45 @@ +name: Docker Build & Push and Deploy to resell-prod + +on: + push: + branches: [release] + workflow_dispatch: + +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/resell-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: | + export IMAGE_TAG=${{ steps.vars.outputs.sha_short }} + cd docker-compose + docker stack rm the-stack + sleep 20s + docker stack deploy -c docker-compose.yml the-stack + docker system prune -a \ No newline at end of file