Skip to content

Take Screenshot

Take Screenshot #1

name: Take Screenshot
on:
push:
branches:
- master
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
DISPLAY: :0
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache cargo bin
uses: actions/cache@v2
with:
path: ~/.cargo/bin
key: ${{ runner.os }}-cargo-bin-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index
uses: actions/cache@v2
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo build
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y xvfb scrot imagemagick
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Start Xvfb
run: |
Xvfb :0 -screen 0 1024x768x24 > /dev/null 2>&1 &
sleep 5 # Add a delay to give Xvfb time to start
sleep 10
scrot -o screenshot.png
- name: Commit and push screenshot
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add screenshot.png
git commit -m "Add screenshot" -a
git push