name: Creates a docker image for production on: push: tags: - 'v*' jobs: docker: runs-on: ubuntu-latest steps: # - name: Build started # uses: voxmedia/github-action-slack-notify-build@v1 # if: success() # with: # channel: ci-notifications # status: STARTED # color: good # env: # SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} # - name: Checkout # uses: actions/checkout@v1 # with: # fetch-depth: 1 # - name: Log in to Docker Hub # uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 # with: # username: ${{ secrets.DOCKER_HUB_USERNAME }} # password: ${{ secrets.DOCKER_HUB_PASSWORD }} # - name: Extract metadata (tags, labels) for Docker # id: meta # uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 # with: # images: redbeard/mines-backend # - name: Build and push Docker image # uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc # env: # SCOPE: production # with: # context: . # push: true # tags: ${{ steps.meta.outputs.tags }} # labels: ${{ steps.meta.outputs.labels }} - name: Create Sentry release uses: distributhor/workflow-webhook@v2 env: webhook_type: 'json-extended' webhook_url: ${{ secrets.SENTRY_WEBHOOK_URL }} data: '{ "version": "${{ github.ref_name }}", "environment" : "production" }' # - name: executing remote ssh commands using password # uses: appleboy/ssh-action@master # with: # host: ${{ secrets.SSH_HOST }} # username: ${{ secrets.SSH_USERNAME }} # password: ${{ secrets.SSH_PASSWORD }} # port: ${{ secrets.SSH_PORT }} # script: | # cd /media/data/apps/mines-backend # docker pull redbeard/mines-backend:latest # docker-compose up -d app0 # docker-compose up -d app1 # docker exec -t mines-be0 python manage.py migrate # docker image prune -f # - name: Build finished # if: success() # uses: voxmedia/github-action-slack-notify-build@v1 # with: # channel: ci-notifications # status: SUCCESS # color: good # env: # SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}