aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/build-preview-site.yml
blob: 2639c0534c55dff38bb6265c9a215a66c02d9de0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: Build pelican-themes preview site

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

# Allow one concurrent deployment
concurrency:
  group: "pages"
  cancel-in-progress: true

on:
  # Triggers the workflow on push or pull request events but only for the "main" branch
  push:
    branches: [ "master" ]
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 1
          submodules: recursive
      - name: Checkout pelican
        uses: actions/checkout@v3
        with:
          repository: getpelican/pelican
          path: _pelican
          fetch-depth: 1
      - name: Setup python-3.10
        uses: actions/setup-python@v4
        with:
          python-version: "3.10"
      - name: Cache Playwright browsers
        uses: actions/cache@v3
        with:
          path: ~/.cache/ms-playwright/
          key: ${{ runner.os }}-browsers
      - name: Install pelican and shot-scraper
        run: pip install pelican[markdown] shot-scraper
      - name: Setup shot-scraper
        run: shot-scraper install
      - name: Generate output
        run: python build-theme-previews.py

      # Rsync to server hosting pelicanthemes.com
      - name: Install SSH key
        uses: shimataro/ssh-key-action@v2
        with:
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          known_hosts: unnecessary
      - name: Adding known hosts
        run: ssh-keyscan -p 22 -H pelicanthemes.com  >> ~/.ssh/known_hosts
      - name: Deploy with rsync
        run: rsync -avz ./_output/ deploy@pelicanthemes.com:~/roles/caddy/sites/pelicanthemes.com/

      # Deploy to Github Pages
      - name: Setup Pages
        uses: actions/configure-pages@v2
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: '_output'
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1