ChrisySuisse / arbeitsrecht-winter

1 stars 0 forks source link

Proposal for new deployment workflow #1

Open martindonat opened 6 months ago

martindonat commented 6 months ago
name: Deploy Hugo site to Hoster

on:
  # Runs on pushes targeting the default branch
  push:
    branches:
      - main

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: "pages"
  cancel-in-progress: false

# Default to bash
defaults:
  run:
    shell: bash

jobs:
  # Build job
  build:
    runs-on: ubuntu-latest
    env:
      HUGO_VERSION: 0.123.0
    steps:
      - name: Install Hugo CLI
        run: |
          wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
          && sudo dpkg -i ${{ runner.temp }}/hugo.deb          
      - name: Build with Hugo
        env:
          # For maximum backward compatibility with Hugo modules
          HUGO_ENVIRONMENT: production
          HUGO_ENV: production
        run: |
          hugo \
            --gc \
            --minify \

  # Deployment job
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to Website
        id: deployment
        run: |
          rsync -avz --delete public/ ${USER}@${HOST}:~/${DIR} # this will delete everything on the server that's not in the local public folder

Missing: Correct path, credentials

martindonat commented 6 months ago

rsync -avz --delete --password-file=HOST_PSSWRD public/ ${USER}@${HOST}:~/${DIR}

martindonat commented 6 months ago

Anleitung Änderungen an der Webseite

Der Inhalt der Webseite wird hier auf Github verwaltet. Jede Änderung wird sofort automatisch zum Hoster gepusht, sodass nach kurzer Zeit die Änderung veröffentlicht sein sollte. Das geschieht mit einem sog. Workflow (Github Actions). Dieser ist im Ordner .github/workflows gespeichert.

Aufbau der Daten

Die Inhalte der Seiten verteilen sich auf folgende drei Ordner: content, data und static.

static: Hier liegen statische Dateien, die auf den Seiten eingebunden werden sollen, insbesondere Bilder (unter static/images) und Dokumente (unter static/documents).

data: Hier finden sich Daten, mit denen die Landing Page befüllt wird: FAQ, Kurzbeschreibung der Services, Einleitung zur Blog-Section etc.

content: Hier sind die einzelnen Seiten. Jede Seite hat einen eigenen Ordner mit einer _index.md Datei darin. Einen eigenen Aufbau hat der Ordner blog. Hier liegt die Übersichtsseite, die Datei heißt ebenfalls _index.md. Alle einzelnen Blog-Beiträge haben dann einen sprechenden Namen und liegen ebenfalls darin. Wenn ein neuer Beitrag erstellt werden soll, kann man sich am bestehenden orientieren.

Die Ordner data und content sind beide unterteilt in die beiden Sprachen de und en. Die Sprachordner sind dann identisch aufgebaut. Änderungen sollten natürlich an beiden Stellen gepflegt werden, um die Seite synchron zu halten.

Eine Änderung vornehmen

Änderungen kann man einfach in Github vornehmen. Einfach die entsprechende Datei auswählen, auf das Stift-Icon rechts über dem Textfeld klicken, alle Änderungen eintragen und dann auf "Commit changes" klicken. Im Pop-Up Fenster, das erscheint, kann man noch kurz seine Änderungen zusammenfassen (z.B. "Rechtschreibung korrigiert" o.ä.). Bestätigen und dann beginnt auch schon der Deployment-Process (s.o.).

Eine neue Seite anlegen