Skip to content

NACHHER

NACHHER #40

Workflow file for this run

name: CI Pipeline Hanoi Towers
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
accessibility:
name: Accessibility Evaluation
runs-on: ubuntu-latest
environment: dev-accessibility
env:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
HANOI_FRONTEND_URL: ${{ vars.HANOI_FRONTEND_URL }}
HANOI_BACKEND_URL: ${{ vars.HANOI_BACKEND_URL }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.7
- name: Set up .env files
run: |
sed -i "s|^JWT_SECRET=.*|JWT_SECRET=${JWT_SECRET}|" hanoi-backend/.env
sed -i "s|^DATABASE_PASSWORD=.*|DATABASE_PASSWORD=${DB_PASSWORD}|" hanoi-backend/.env
sed -i "s|^HANOI_FRONTEND_URL=.*|HANOI_FRONTEND_URL=${HANOI_FRONTEND_URL}|" hanoi-frontend/.env
sed -i "s|^HANOI_BACKEND_URL=.*|HANOI_BACKEND_URL=${HANOI_BACKEND_URL}|" hanoi-frontend/.env
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Grant execute permission for Gradle Wrapper
run: chmod +x ./gradlew
- name: Build backend
run: |
./gradlew :hanoi-backend:build
- name: Build frontend
run: |
./gradlew :hanoi-frontend:build
- name: Run App
run: docker compose up -d
- name: Install Axe
run: npm install @axe-core/cli -g
- name: Install Chrome Driver Manager
run: npm install -g browser-driver-manager
- name: Install Commander
run: npm install commander -g
- name: Install Chrome with Chrome Driver Manager
run: npx browser-driver-manager install chrome
- name: Install needed Chrome Version
run: npm install -g chromedriver@125
- name: Run Axe with set Chromedriver path
continue-on-error: true
run: axe http://localhost:8080, http://localhost:8080/game, http://localhost:8080/cheat, http://localhost:8080/solver --chromedriver-path $(npm root -g)/chromedriver/bin/chromedriver --exit >> results
- name: Comment on PR
if: ${{ github.event_name == 'pull_request' }}
uses: JoseThen/comment-pr@v1.2.0
with:
file_path: './results'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Fail if results file exists
run: |
if [ -f "./results" ]; then
echo "Results file with accessibility issues exists - Details in PR-comment. Failing the workflow."
exit 1
else
echo "No errors, be sure to still check manually for accessibility ;)"
fi