Both workflows updated #3
This file contains hidden or 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: Deploy to Testing Environment | |
| on: | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: # Allows manual trigger button | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: '18' | |
| - name: Install Dependencies | |
| run: npm install | |
| - name: Run Linting (Code Analysis) | |
| # If you don't have a specific lint command, this placeholder ensures the step exists | |
| run: echo "Linting code analysis..." | |
| - name: Run Unit Tests | |
| # runs the test script defined in package.json | |
| run: npm test | |
| - name: Build React App | |
| run: npm run build-react | |
| - name: Deploy Files to Testing Server | |
| uses: appleboy/scp-action@master | |
| with: | |
| host: ${{ secrets.TESTING_EC2_IP }} | |
| username: ubuntu | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| source: "./*" | |
| target: "/home/ubuntu/app" | |
| - name: Start Application on Testing Server | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.TESTING_EC2_IP }} | |
| username: ubuntu | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| cd /home/ubuntu/app | |
| # Install production dependencies | |
| npm install --production | |
| # Restart the app using PM2 (or start if not running) | |
| pm2 restart all || pm2 start index.js --name "react-node-app" | |
| pm2 save |