Skip to content

CI

CI #90

Workflow file for this run

name: CI
on:
push:
branches:
- master
# For scheduled deployment with Cron Jobs
# Examples of cron schedule expressions:
# '0 * * * *': hourly
# '0 0 * * *': daily
# '0 0 1 * *': monthly
schedule:
- cron: '0 0 * * *'
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Install dependencies
run: pip install requests
- name: Make scripts executable
run: |
chmod +x get-reposense.py
chmod +x run.sh
- name: Setup assets
run: |
mkdir -p assets/images
cp title.md assets/
cp favicon.ico assets/
- name: Show workspace
run: |
pwd
ls -la
echo "=== Config Directory ==="
ls -la configs/
echo "=== Assets Directory ==="
ls -la assets/
echo "=== Assets Images Directory ==="
ls -la assets/images/
- name: Download RepoSense
run: |
./get-reposense.py --release --overwrite
ls -la RepoSense.jar
- name: Generate report
run: |
set -x # Enable debug output
rm -rf reposense-report
# Show Java version
java -version
# Run RepoSense with debug output
java --add-opens java.base/java.time=ALL-UNNAMED -jar RepoSense.jar --config ./configs --since 22/01/2025 --formats java md fxml sh bat gradle txt --timezone UTC+08 --last-modified-date --output reposense-report --assets assets
# Update the title in summary.json
if [ -f "reposense-report/summary.json" ]; then
sed -i 's/"reportTitle":"[^"]*"/"reportTitle":"CS2103DE Software Engineering iP Code Dashboard"/g' reposense-report/summary.json
fi
# Show report directory contents
echo "=== Report Directory After Generation ==="
ls -la reposense-report/
# Fix nested directory if it exists
if [ -d "reposense-report/reposense-report" ]; then
mv reposense-report/reposense-report/* reposense-report/
rm -rf reposense-report/reposense-report
fi
- name: Check report generation
run: |
echo "=== RepoSense Report Contents ==="
ls -la reposense-report/
if [ ! -d "reposense-report" ] || [ -z "$(ls -A reposense-report)" ]; then
echo "Error: Report directory is empty or not created"
echo "=== Current Directory ==="
pwd
ls -la
echo "=== Java Version ==="
java -version
echo "=== RepoSense.jar ==="
ls -la RepoSense.jar
exit 1
fi
- name: Prepare deployment
run: |
# Create deployment directory
mkdir -p deploy
# Copy required files
cp -r reposense-report/* deploy/ || echo "Warning: No report files to copy"
cp -r fonts js deploy/
cp .nojekyll favicon.ico index.html title.md deploy/
# Copy assets including logo
mkdir -p deploy/images
cp -r assets/images/* deploy/images/
# Create logs directory
mkdir -p deploy/reposense-logs
if [ -f "reposense-report/reposense.log" ]; then
cp reposense-report/reposense.log deploy/reposense-logs/response.log.0
else
echo "No log file found" > deploy/reposense-logs/response.log.0
fi
# Create archive
cd reposense-report || exit 1
zip -r ../deploy/archive.zip . || echo "Warning: Could not create archive"
cd ..
- name: List deployment files
run: |
echo "=== Deployment Directory Structure ==="
ls -la deploy/
find deploy -type f
- name: Deploy GitHub pages
if: success()
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./deploy
force_orphan: true
enable_jekyll: false
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: 'docs: update RepoSense report'