diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7b400fe..81f69cc 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -18,48 +18,108 @@ jobs: # -------------------------------------------------------- - # 2. Determine Deployment Folder Based on Branch + # 2. Determine SSH Host & Deployment Folder Based on Branch # -------------------------------------------------------- - - name: Determine Deployment Path + - name: Determine SSH & Deployment Path run: | echo "Detected branch: ${{ gitea.ref_name }}" BRANCH_NAME="${{ gitea.ref_name }}" case "$BRANCH_NAME" in - beta) PROJECT_PATH="deployauto" ;; - testing) PROJECT_PATH="null" ;; - client) PROJECT_PATH="null" ;; - staging) PROJECT_PATH="null" ;; - production) PROJECT_PATH="null" ;; - *) echo "Unknown branch: $BRANCH_NAME"; exit 1 ;; + + 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="deployauto" + ;; + + 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=${{ ssecrets.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: Execute remote SSH commands using password + - 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: ${{ vars.NODE_SERVER_HOST }} - username: ${{ vars.NODE_SERVER_USER }} - password: ${{ vars.NODE_SERVER_PASSWORD }} - port: ${{ vars.NODE_SERVER_PORT }} - envs: BRANCH_NAME,PROJECT_PATH + 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 "/home/$PROJECT_PATH/reactautodeploy" - git fetch - git pull git pull origin $BRANCH_NAME -# npm i && npm run build + 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 "/home/$PROJECT_PATH/reactautodeploy" + git pull origin $BRANCH_NAME + npm i && npm run build +