Static HTML Github Action Workflow

Static HTML Github Action Workflow

name: Simple Web Application Deployment

on:
  push:
    branches:
      - master

jobs:
  devdeploy:
    name: Dev Env Deployment
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the Code
        uses: actions/[email protected]

      - name: Copy the Public Folder to Ubuntu
        uses: marcodallasanta/[email protected]
        with:
          local: 'src/*'
          remote: '/tmp/src/'
          host: ${{secrets.AZURE_VM_IP}}
          user: ${{secrets.AZURE_VM_USENAME}}
          key: ${{secrets.SSH_KEY}}
          ssh_options: -o StrictHostKeyChecking=no
          pre_upload: sudo rm -rf /var/www/html/*
          post_upload: sudo mv /tmp/src/* /var/www/html/

  testing-application-health-check:
    name: Application Health Check
    runs-on: ubuntu-latest
    needs: [devdeploy]
    steps:
      - name: Using Wget we will Download the File
        run: wget -qO- ${{secrets.AZURE_VM_IP}}/index.html | grep -iq "github"

  testing-network-health-check:
    name: Network Health Check
    runs-on: ubuntu-latest
    needs: [devdeploy]
    steps:
      - name: Using NetCat we will Check the Port
        run: nc -zv ${{secrets.AZURE_VM_IP}} 80

  proddeploy:
    name: Prod Env Deployment
    runs-on: ubuntu-latest
    needs: [testing-application-health-check, testing-network-health-check]
    steps:
      - name: Checkout the Code
        uses: actions/[email protected]

      - name: Copy the Public Folder to Ubuntu
        uses: marcodallasanta/[email protected]
        with:
          local: 'src/*'
          remote: '/tmp/src/'
          host: ${{secrets.PROD_AZURE_SERVER_IP}}
          user: ${{secrets.AZURE_VM_USENAME}}
          key: ${{secrets.SSH_KEY}}
          ssh_options: -o StrictHostKeyChecking=no
          pre_upload: sudo rm -rf /var/www/html/*
          post_upload: sudo mv /tmp/src/* /var/www/html/

      # - name: Zip the Files
      #   run: |
      #     echo "Zip the Files"
      #     tar -cvzf website.tar.gz src


      # - name: Method 1 - for index.html
      #   run: |
      #     echo "$SERVER_PRIVATE_KEY" > key.pem
      #     chmod 600 key.pem
      #     scp -i key.pem -o StrictHostKeyChecking=no website.tar.gz $SERVER_USER@$SERVER_HOST:/tmp/
      #     scp -i key.pem -o StrictHostKeyChecking=no movefiles.sh $SERVER_USER@$SERVER_HOST:/tmp/
      #     ssh -i key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST 'chmod +x /tmp/movefiles.sh'
      #     ssh -i key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST '/tmp/movefiles.sh'
      #   continue-on-error: true



      # - name: Method 1 - for index.html
      #   run: |
      #     echo "$SERVER_PRIVATE_KEY" > key.pem
      #     chmod 600 key.pem
      #     scp -i key.pem -o StrictHostKeyChecking=no index.html $SERVER_USER@$SERVER_HOST:/tmp/
      #     ssh -i key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST "sudo mv /tmp/index.html /var/www/html/index.html"
      #   continue-on-error: true



      # - name: Method 2 - for about.html
      #   run: |
      #     touch devapacheserver.pem
      #     echo "${{ secrets.SSH_KEY }}" >> devapacheserver.pem
      #     chmod 600 devapacheserver.pem
      #     scp -i devapacheserver.pem -o StrictHostKeyChecking=no about.html $SERVER_USER@$SERVER_HOST:/tmp/
      #   continue-on-error: true

Surge Deployment

Last updated