CI #87
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: 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' |