name: Node.js CI/CD on: push: # tells github to run this on any push to the repository branches: - main jobs: deploy: runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' # we tell Github to only execute this step if we're on our main branch (so we don't put unfinished branches in production) steps: - name: Deploying to Ayrenn uses: appleboy/ssh-action@master # An action made to control Linux servers with: # We set all our secrets here for the action, these won't be shown in the action logs host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: | cd nodbot # we move into our app's folder git pull # we pull any changes from git npm prune # we remove any unused dependencies npm install # we install any missing dependencies pm2 reload nodbot # we reload the app via PM2