Skip to content

Instantly share code, notes, and snippets.

@LeCoupa
Created October 31, 2020 16:58
Show Gist options
  • Save LeCoupa/a23c7f77bacf85cbab381a253db2fe28 to your computer and use it in GitHub Desktop.
Save LeCoupa/a23c7f77bacf85cbab381a253db2fe28 to your computer and use it in GitHub Desktop.

Revisions

  1. LeCoupa created this gist Oct 31, 2020.
    67 changes: 67 additions & 0 deletions deploy.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,67 @@
    name: Deploy

    on:
    push:
    branches:
    - production

    jobs:
    deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Deploying
    uses: appleboy/ssh-action@master
    with:
    host: ${{ secrets.HOST }}
    username: ${{ secrets.USERNAME }}
    key: ${{ secrets.KEY }}
    script: |
    # Copy and build new version
    cp -r prospectwith-app prospectwith-app-new
    cd prospectwith-app-new
    git checkout production
    git fetch --all
    git reset --hard origin/production
    npm install --only=production
    npm run build
    # Replace current version with the new one
    cd ..
    mv prospectwith-app prospectwith-app-old
    mv prospectwith-app-new prospectwith-app
    # Restart server
    cd prospectwith-app
    pm2 kill
    pm2 start "npm run start" --name App
    rm -rf ../prospectwith-app-old
    - name: Slack success notification
    if: job.status == 'success'
    uses: rtCamp/action-slack-notify@master
    env:
    SLACK_CHANNEL: app
    SLACK_COLOR: good
    SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
    SLACK_MESSAGE: 'Deployment achieved with success'
    SLACK_TITLE: CI
    SLACK_USERNAME: GitHub
    SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

    - name: Slack error notification
    if: job.status == 'failure'
    uses: rtCamp/action-slack-notify@master
    env:
    SLACK_CHANNEL: app
    SLACK_COLOR: danger
    SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
    SLACK_MESSAGE: 'The deployment has failed @channel'
    SLACK_TITLE: CI
    SLACK_USERNAME: GitHub
    SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}