Skip to content
This repository has been archived by the owner on Jul 18, 2022. It is now read-only.

Add screenshot action #116

Merged
merged 9 commits into from May 1, 2022
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/screenshot.py
@@ -0,0 +1,21 @@
"""Script for generating screenshots of the main page in ``.github/workflows/screenshot.yml``."""

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager


def main() -> None:
"""Main function of the script."""
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
driver.get("http://localhost:8000/")
driver.set_window_size(1920, 1080)
driver.save_screenshot("screen.png")
driver.close()


if __name__ == "__main__":
main()
79 changes: 79 additions & 0 deletions .github/workflows/screenshot.yml
@@ -0,0 +1,79 @@
name: Screenshot

on:
push:
paths:
- '**.Svelte'
- '**.js'
- '**.ts'
- '**.scss'
pull_request:
paths:
- '**.Svelte'
- '**.js'
- '**.ts'
- '**.scss'

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Install poetry
run: |
curl -sSL "https://install.python-poetry.org" | python

# Adding `poetry` to `$PATH`:
echo "$HOME/.poetry/bin" >> $GITHUB_PATH

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: '3.10'
cache: 'poetry'

- name: Install dependencies
run: poetry install --no-dev -E screenshot-script

- name: Install node
uses: bahmutov/npm-install@v1
with:
working-directory: svelte

- name: Build Svelte
working-directory: svelte
run: npm run build

- name: Make and run migrations
run: |
poetry run python manage.py makemigrations --noinput
poetry run python manage.py migrate

- name: Run server
run: |
poetry run python manage.py runserver &
PerchunPak marked this conversation as resolved.
Show resolved Hide resolved
sleep 5

- name: Run script
run: poetry run python .github/scripts/screenshot.py

- name: Upload
uses: actions/upload-artifact@v3
with:
name: screen
path: screen.png

- name: Upload image to temp.sh
PerchunPak marked this conversation as resolved.
Show resolved Hide resolved
id: upload
run: |
url=$(curl -T screen.png temp.sh)
echo ::set-output name=url::$url

- name: Create commit comment
uses: peter-evans/commit-comment@v2
with:
body: |
Rendered image:
![](${{ steps.upload.outputs.url }})