From 539618d957270e1cb4fdae06f383fdca03f2c81e Mon Sep 17 00:00:00 2001 From: norb Date: Tue, 25 Jun 2024 15:11:52 +0200 Subject: [PATCH] feat: #32941 trigger build and deploy for specific branch move main logic to seperate file and create seperate dev and prod actions executed on develop and main branch respectiveley --- .../workflows/build-and-deploy-pipeline.yaml | 77 +++---------------- .gitea/workflows/build-workflow.yaml | 59 ++++++++++++++ 2 files changed, 69 insertions(+), 67 deletions(-) create mode 100644 .gitea/workflows/build-workflow.yaml diff --git a/.gitea/workflows/build-and-deploy-pipeline.yaml b/.gitea/workflows/build-and-deploy-pipeline.yaml index 973590c..54fc517 100644 --- a/.gitea/workflows/build-and-deploy-pipeline.yaml +++ b/.gitea/workflows/build-and-deploy-pipeline.yaml @@ -1,4 +1,4 @@ -name: Build and Deploy Hugo Site +name: Build and Deploy Hugo Site to Production on: push: @@ -8,77 +8,20 @@ on: env: - SSH_USER: verua_info - PROD_HOST: verua.swiss - PROD_PATH: httpdocs - DEV_HOST: verua.info - DEV_PATH: preview/httpdocs + SSH_USER: verua.swiss + SSH_HOST: verua.swiss + DEPLOY_PATH: httpdocs jobs: - buildAndDeploy: - env: - RUNNER_TOOL_CACHE: /toolcache - runs-on: ubuntu-latest + call-build-workflow: + uses: ./.gitea/build-workflow.yaml + steps: - - uses: actions/checkout@v2.4.0 - - - name: env-toml-file - uses: SebRollen/toml-action@v1.2.0 - id: read_toml - with: - file: 'hugo.toml' - field: 'params.environment' - - - name: Echo environment - run: echo "Environment is ${{ steps.read_toml.outputs.value }}" - - - name: Set up Go - uses: actions/setup-go@v5.0.0 - with: - go-version: '1.20.5' - - - name: Set up Node.js - uses: actions/setup-node@v4.0.2 - with: - node-version: '20' - cache: 'npm' - - - name: Setup Project - run: npm run project-setup - - - name: Install npm dependencies - run: npm install - - - name: Set up Hugo Extended - uses: peaceiris/actions-hugo@v3.0.0 - with: - hugo-version: '0.121.2' - extended: true - - - name: Build Hugo site - run: hugo --minify - - - name: Setup rsync - run: apt-get update && apt-get install -y rsync - - - name: Setup SSH Key - uses: webfactory/ssh-agent@v0.5.3 - with: - ssh-private-key: ${{ secrets.VFO_SSH_KEY }} - - - name: Deploy to Development - if: steps.read_toml.outputs.value == 'development' - run: | - echo "Running steps for Development Environment" - echo "host: $DEV_HOST path: $DEV_PATH" - rsync -avz ./public/ ${{ secrets.SSH_USER }}@$DEV_HOST:$DEV_PATH - env: - RSYNC_RSH: 'ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no' - - name: Deploy to Production - if: steps.read_toml.outputs.value == 'production' run: | echo "Running steps for Production Environment" - rsync -avz --delete ./public/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/${{ secrets.PRODUCTION_PATH }} + echo "host: $DEV_HOST path: $DEV_PATH" +# rsync -avz --delete ./public/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/${{ secrets.PRODUCTION_PATH }} + rsync -avz ./public/ $SSH_USER@$SSH_HOST:$DEPLOY_PATH env: RSYNC_RSH: 'ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no' diff --git a/.gitea/workflows/build-workflow.yaml b/.gitea/workflows/build-workflow.yaml new file mode 100644 index 0000000..9ee6c6f --- /dev/null +++ b/.gitea/workflows/build-workflow.yaml @@ -0,0 +1,59 @@ +name: Build Hugo Site + +on: + workflow_call: + secrets: inherit + +jobs: + build-wrokflow: + env: + RUNNER_TOOL_CACHE: /toolcache + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.4.0 + + - name: env-toml-file + uses: SebRollen/toml-action@v1.2.0 + id: read_toml + with: + file: 'hugo.toml' + field: 'params.environment' + + - name: Echo environment + run: echo "Environment is ${{ steps.read_toml.outputs.value }}" + + - name: Set up Go + uses: actions/setup-go@v5.0.0 + with: + go-version: '1.20.5' + + - name: Set up Node.js + uses: actions/setup-node@v4.0.2 + with: + node-version: '20' + cache: 'npm' + + - name: Setup Project + run: npm run project-setup + + - name: Install npm dependencies + run: npm install + + - name: Set up Hugo Extended + uses: peaceiris/actions-hugo@v3.0.0 + with: + hugo-version: '0.121.2' + extended: true + + - name: Build Hugo site + run: hugo --minify + + - name: Setup rsync + run: apt-get update && apt-get install -y rsync + + - name: Setup SSH Key + uses: webfactory/ssh-agent@v0.5.3 + with: + ssh-private-key: ${{ secrets.VFO_SSH_KEY }} + +