firq-dev-website/.forgejo/workflows/unlighthouse.yml
Firq 58ae955f66
Some checks failed
/ deploy-unlighthouse-files (push) Has been skipped
/ unlighthouse (push) Failing after 3s
/ deploy-unlighthouse-site (push) Has been skipped
/ get-version (push) Successful in 2s
/ astro-check (push) Successful in 14s
workdir issue
2024-10-22 18:09:50 +02:00

119 lines
4.3 KiB
YAML

on:
push:
tags:
- '[0-9]+\.[0-9]+\.[0-9]+-ulh\.[0-9]+'
jobs:
unlighthouse:
runs-on: docker
container: forgejo.neshweb.net/ci-docker-images/unlighthouse:0.3.0
services:
website:
image: forgejo.neshweb.net/firq/firq-dev-website:preview
options: >-
--health-cmd "curl -sS http://localhost:8081/ || echo exit 1"
--health-interval 10s
--health-timeout 5s
--health-retries 5
--workdir /app
steps:
- name: Checkout repository
uses: https://code.forgejo.org/actions/checkout@v3
- name: test
run: curl -v -o - "http://localhost:8081/" || true
- name: test
run: curl -v -o - "http://website:8081/" || true
- name: test
run: curl -v -o - "http://website/" || true
- name: test
run: curl -v -o - "website" || true
- name: test
run: curl -v -o - "website:8081" || true
- name: logs
run: docker logs "${{ job.services.website.id }}"
- name: Run unlighthouse
run: unlighthouse-ci --site "http://website/" --disable-dynamic-sampling
- name: Prepare artifacts
run: cp serve.json unlighthouse-reports
- name: Upload reports
uses: actions/upload-artifact@v3
with:
name: unlighthouse-reports
path: unlighthouse-reports/
deploy-unlighthouse-files:
needs: [ unlighthouse ]
if: success()
runs-on: docker
env:
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
steps:
- name: Install and update ssh + rsync
run: |
which rsync || ( apt update -y && apt install rsync -y)
which ssh-agent || ( apt update -y && apt install openssh-client -y)
- name: Downloading static site artifacts
uses: actions/download-artifact@v3
with:
name: unlighthouse-reports
path: public
- name: Install SSH Key
uses: https://github.com/shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: unnecessary
- name: Adding Known Hosts
run: ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts
- name: Stop screen session, delete old files
uses: https://github.com/appleboy/ssh-action@master
with:
host: ${{ env.DEPLOY_HOST }}
username: ${{ env.DEPLOY_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
screen -X -S firq_dev-unlighthouse kill
rm -r -f firq_dev/unlighthouse/*
- name: Copy files using rsync
run: rsync -az --stats public/* ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }}:~/firq_dev/unlighthouse
- name: Check files on deploy target
uses: https://github.com/appleboy/ssh-action@master
with:
host: ${{ env.DEPLOY_HOST }}
username: ${{ env.DEPLOY_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd firq_dev
find unlighthouse -maxdepth 1 -printf "%p\n"
deploy-unlighthouse-site:
needs: [ deploy-unlighthouse-files ]
if: success()
runs-on: docker
env:
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
steps:
- name: Install and update ssh + rsync
run: |
which rsync || ( apt update -y && apt install rsync -y)
which ssh-agent || ( apt update -y && apt install openssh-client -y)
- name: Install SSH Key
uses: https://github.com/shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: unnecessary
- name: Adding Known Hosts
run: ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts
- name: Start new screen session
uses: https://github.com/appleboy/ssh-action@master
with:
host: ${{ env.DEPLOY_HOST }}
username: ${{ env.DEPLOY_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
PATH="$HOME/.local/bin:$PATH"
screen -ls | grep 'firq_dev-unlighthouse' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
cd firq_dev
screen -S firq_dev-unlighthouse -dm serve unlighthouse/ -p ${{ secrets.UNLIGHTHOUSE_DEPLOY_PORT }}