name: Test Gitea Actions Workflow on: push: branches: - beta - testing - client - staging - production jobs: react_deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 # -------------------------------------------------------- # 2. Determine SSH Host & Deployment Folder Based on Branch # -------------------------------------------------------- - name: Determine SSH & Deployment Path run: | echo "Detected branch: ${{ gitea.ref_name }}" BRANCH_NAME="${{ gitea.ref_name }}" case "$BRANCH_NAME" in beta) echo "DEPLOY_HOST=${{ vars.BETA_SERVER_HOST }}" >> $GITEA_ENV echo "DEPLOY_USER=${{ vars.BETA_SERVER_USER }}" >> $GITEA_ENV echo "DEPLOY_PASS=${{ secrets.BETA_SERVER_PASSWORD }}" >> $GITEA_ENV echo "DEPLOY_PORT=${{ secrets.BETA_SERVER_PORT }}" >> $GITEA_ENV echo "AUTH_TYPE=password" >> $GITEA_ENV PROJECT_PATH="/home/deployauto/Sprint_Release" ;; testing) echo "DEPLOY_HOST=${{ vars.BETA_SERVER_HOST }}" >> $GITEA_ENV echo "DEPLOY_USER=${{ vars.BETA_SERVER_USER }}" >> $GITEA_ENV echo "DEPLOY_PASS=${{ secrets.BETA_SERVER_PASSWORD }}" >> $GITEA_ENV echo "DEPLOY_PORT=${{ secrets.BETA_SERVER_PORT }}" >> $GITEA_ENV echo "AUTH_TYPE=password" >> $GITEA_ENV PROJECT_PATH="null" ;; client) echo "DEPLOY_HOST=${{ vars.BETA_SERVER_HOST }}" >> $GITEA_ENV echo "DEPLOY_USER=${{ vars.BETA_SERVER_USER }}" >> $GITEA_ENV echo "DEPLOY_PASS=${{ secrets.BETA_SERVER_PASSWORD }}" >> $GITEA_ENV echo "DEPLOY_PORT=${{ secrets.BETA_SERVER_PORT }}" >> $GITEA_ENV echo "AUTH_TYPE=password" >> $GITEA_ENV PROJECT_PATH="null" ;; staging) echo "DEPLOY_HOST=${{ vars.STAGING_SERVER_HOST }}" >> $GITEA_ENV echo "DEPLOY_USER=${{ vars.STAGING_SERVER_USER }}" >> $GITEA_ENV echo "DEPLOY_KEY=${{ secrets.STAGING_SERVER_PASSWORD }}" >> $GITEA_ENV echo "DEPLOY_PORT=${{ secrets.STAGING_SERVER_PORT }}" >> $GITEA_ENV echo "AUTH_TYPE=ssh" >> $GITEA_ENV PROJECT_PATH="null" ;; production) echo "DEPLOY_HOST=${{ vars.PRODUCTION_SERVER_HOST }}" >> $GITEA_ENV echo "DEPLOY_USER=${{ vars.PRODUCTION_SERVER_USER }}" >> $GITEA_ENV echo "DEPLOY_KEY=${{ secrets.PRODUCTION_SERVER_PASSWORD }}" >> $GITEA_ENV echo "DEPLOY_PORT=${{ secrets.PRODUCTION_SERVER_PORT }}" >> $GITEA_ENV echo "AUTH_TYPE=ssh" >> $GITEA_ENV PROJECT_PATH="null" ;; *) echo "Unknown branch: $BRANCH_NAME" exit 1 esac echo "PROJECT_PATH=$PROJECT_PATH" >> $GITEA_ENV echo "BRANCH_NAME=$BRANCH_NAME" >> $GITEA_ENV echo "Selected PROJECT_PATH: $PROJECT_PATH" echo "DEPLOY_HOST: $DEPLOY_HOST" echo "DEPLOY_USER: $DEPLOY_USER" - name: Deploy via Password Auth if: env.AUTH_TYPE == 'password' uses: appleboy/ssh-action@v1 env: BRANCH_NAME: ${{ env.BRANCH_NAME }} PROJECT_PATH: ${{ env.PROJECT_PATH }} with: host: ${{ env.DEPLOY_HOST }} username: ${{ env.DEPLOY_USER }} password: ${{ env.DEPLOY_PASS }} port: ${{ env.DEPLOY_PORT }} envs: PROJECT_PATH,BRANCH_NAME script: | echo "Incoming Branch : $BRANCH_NAME" echo "Selected folder = $PROJECT_PATH" cd "$PROJECT_PATH/reactautodeploy" git pull origin $BRANCH_NAME npm i && npm run build - name: Deploy via SSH Key if: env.AUTH_TYPE == 'ssh' uses: appleboy/ssh-action@v1 env: BRANCH_NAME: ${{ env.BRANCH_NAME }} PROJECT_PATH: ${{ env.PROJECT_PATH }} with: host: ${{ env.DEPLOY_HOST }} username: ${{ env.DEPLOY_USER }} key: ${{ env.DEPLOY_KEY }} port: ${{ env.DEPLOY_PORT }} envs: PROJECT_PATH,BRANCH_NAME script: | echo "Incoming Branch : $BRANCH_NAME" echo "Selected folder = $PROJECT_PATH" cd "$PROJECT_PATH/reactautodeploy" git pull origin $BRANCH_NAME npm i && npm run build