name: Build and Deploy Hugo Site on: push: branches: - main - dev env: PROD_USER: verua.swiss PROD_HOST: verua.swiss PROD_PATH: httpdocs DEV_USER: verua.info DEV_HOST: verua.info DEV_PATH: preview/httpdocs jobs: buildAndDeploy: 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 }} - name: Deploy to Development if: github.ref == 'refs/heads/dev' run: | echo "Running steps for Development Environment" echo "user: $DEV_USER host: $DEV_HOST path: $DEV_PATH" rsync -avz ./public/ $DEV_USER@$DEV_HOST:$DEV_PATH env: RSYNC_RSH: 'ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no' - name: Deploy to Production if: github.ref == 'refs/heads/main' run: | echo "Running steps for Production Environment" rsync -avz ./public/ $PROD_USER@$PROD_HOST:$PROD_PATH env: RSYNC_RSH: 'ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no' # name: Build and Deploy Hugo Site # on: # push: # branches: # - main # - kontaktformular-filter-spam # env: # PROD_USER: verua.swiss # PROD_HOST: verua.swiss # PROD_PATH: httpdocs # DEV_USER: verua.info # DEV_HOST: verua.info # DEV_PATH: preview/httpdocs # jobs: # buildAndDeploy: # 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 }} # - name: Deploy to Development # if: steps.read_toml.outputs.value == 'development' # run: | # echo "Running steps for Development Environment" # echo "user: $DEV_USER host: $DEV_HOST path: $DEV_PATH" # rsync -avz ./public/ $DEV_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 ./public/ $PROD_USER@$PROD_HOST:$PROD_PATH # env: # RSYNC_RSH: 'ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no'