Skip to content

Handle closing a milestone #42

Handle closing a milestone

Handle closing a milestone #42

name: Handle closing a milestone
on:
milestone:
types: [closed]
permissions:
contents: write
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
handle-milestone:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check if milestone is docs
id: check_docs
run: |
if [[ "${{ github.event.milestone.title }}" == docs* ]]; then
echo "is_docs=true" >> $GITHUB_OUTPUT
else
echo "is_docs=false" >> $GITHUB_OUTPUT
fi
# -----------------------------
# Build and preview VitePress docs
# -----------------------------
- name: Set up Node.js
if: steps.check_docs.outputs.is_docs == 'true'
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci
- name: Build with VitePress
run: npm run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
# -----------------------------
# Build and release NoctisUI
# -----------------------------
- name: Set up JDK 21
if: steps.check_docs.outputs.is_docs == 'false'
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Make gradlew executable
if: steps.check_docs.outputs.is_docs == 'false'
run: chmod +x ./gradlew
- name: Build with Gradle
if: steps.check_docs.outputs.is_docs == 'false'
run: |
VERSION=$(echo ${{ github.event.milestone.title }} | tr "." "_")
./gradlew build remapJar
mkdir -p builds
FINAL_JAR=$(ls build/libs/*[0-9].jar | head -n 1)
cp "$FINAL_JAR" "builds/noctisui-$VERSION.jar"
env:
TAG: ${{ github.event.milestone.title }}
- name: Upload artifact
if: steps.check_docs.outputs.is_docs == 'false'
uses: actions/upload-artifact@v4
with:
name: noctisui-${{ github.event.milestone.title }}.jar
path: builds/
- name: Create GitHub Release
if: steps.check_docs.outputs.is_docs == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.milestone.title }}
name: Release ${{ github.event.milestone.title }}
generate_release_notes: true
fail_on_unmatched_files: true
make_latest: true
body: |
# Update of NoctisUI ${{ github.event.milestone.title }}
## Description
${{ github.event.milestone.description }}
files: |
build/devlibs/noctisui-*-dev.jar
builds/**
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: handle-milestone
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4