Create report #491
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create report | |
on: | |
schedule: | |
- cron: '0 4 * * *' # Fixed cron syntax | |
workflow_dispatch: | |
jobs: | |
create-report: | |
runs-on: ubuntu-latest | |
outputs: | |
status: ${{ steps.set-output.outputs.status }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Python 3.x | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install requests python-whois dnspython beautifulsoup4 selenium | |
- name: Install Chrome | |
run: | | |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - | |
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' | |
sudo apt-get update | |
sudo apt-get install -y google-chrome-stable | |
- name: Install Chromedriver | |
run: | | |
# Get the installed Chrome version | |
CHROME_VERSION=$(google-chrome --version | cut -d " " -f 3) | |
echo "Chrome Version: $CHROME_VERSION" | |
# Find the latest compatible Chromedriver version | |
DRIVER_VERSION=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION%.*}") | |
echo "Driver Version: $DRIVER_VERSION" | |
# Download and install Chromedriver | |
wget -q "https://chromedriver.storage.googleapis.com/${DRIVER_VERSION}/chromedriver_linux64.zip" | |
unzip chromedriver_linux64.zip -d ~/ && rm chromedriver_linux64.zip | |
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver | |
sudo chown root:root /usr/local/bin/chromedriver | |
sudo chmod 0755 /usr/local/bin/chromedriver | |
- name: Verify Chrome Installation | |
run: | | |
google-chrome --version | |
chromedriver --version | |
- name: Run Website Tests | |
id: test | |
run: python main.py | |
continue-on-error: false | |
- name: Set Output status | |
id: set-output | |
run: | | |
if [[ -f error.log ]]; then | |
echo "status=error" >> $GITHUB_OUTPUT | |
else | |
echo "status=success" >> $GITHUB_OUTPUT | |
fi | |
- name: Commit and push report | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
git add README.md | |
git commit -m "Add generated report" -a || echo "No changes to commit" | |
git push | |
- name: Fail if error encountered | |
if: steps.set-output.outputs.status == 'error' | |
run: exit 1 |