Merge pull request #903 from IAHispano/formatter/main #233
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: Release | |
on: | |
push: | |
branches: | |
- main | |
- master | |
jobs: | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
- name: Detect and tag new version | |
id: check-version | |
uses: salsify/[email protected] | |
with: | |
tag-template: '{VERSION}' | |
version-command: | | |
bash -o pipefail -c "cat ./assets/config.json | jq -r '.version'" | |
- name: Create CHANGELOG.md | |
if: steps.check-version.outputs.tag | |
run: | | |
cd /home/runner/work/Applio/Applio | |
cat > CHANGELOG.md << EOF | |
## Important Installation Guidelines | |
### Before You Install Applio | |
Please review these essential instructions to ensure a smooth installation: | |
- **File Location**: Place the Applio files in a dedicated folder on your C drive. | |
- **Access Control**: Avoid placing Applio in folders that require elevated privileges. | |
- **Administrator Rights**: Do not run the \`run-install.bat\` script with administrator privileges. | |
- **Path Requirements**: Ensure the installation path is free of spaces or special characters. | |
- **Security Settings**: Temporarily disable your antivirus and firewall to prevent any issues with missing dependencies during installation. | |
### Installation Steps | |
1. **Download**: Get the .zip file from [this link](https://github.com/IAHispano/Applio/archive/refs/tags/${{ steps.check-version.outputs.tag }}.zip). | |
2. **Run the Installer**: Extract the files and execute the \`run-install.bat\` script. | |
3. **Start Applio**: Launch Applio by running the \`run-applio.bat\` script. | |
### Prefer a Simpler Installation? | |
> [!TIP] | |
> For the best experience, we highly recommend using the pre-compiled version. Compiling the code yourself may lead to instabilities. | |
- **Download Compiled Version**: Get the zip from [this link](https://huggingface.co/IAHispano/Applio/resolve/main/Compiled/Windows/ApplioV${{ steps.check-version.outputs.tag }}.zip). | |
- **Run Applio**: Extract the `.zip` file, then open the \`run-applio.bat\` file. | |
**Full Changelog**: https://github.com/IAHispano/Applio/compare/${{ steps.check-version.outputs.previous-version }}...${{ steps.check-version.outputs.tag }} | |
EOF | |
- name: Get commit history | |
if: steps.check-version.outputs.tag | |
run: | | |
previous_tag="${{ steps.check-version.outputs.previous-version }}" | |
echo "Previous Tag: $previous_tag" | |
commit_data=$(curl -s "https://api.github.com/repos/IAHispano/Applio/commits?sha=$previous_tag&per_page=1" \ | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}") | |
if [[ "$commit_data" == "[]" ]]; then | |
echo "No commits found for tag $previous_tag. Using current date." | |
commit_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") | |
else | |
commit_date=$(echo "$commit_data" | jq -r '.[0].commit.committer.date') | |
fi | |
echo "Fetching commits since: $commit_date" | |
curl -s "https://api.github.com/repos/IAHispano/Applio/commits?since=$commit_date&per_page=600" \ | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
| jq -r '.[] | .sha + " " + .commit.message' > commits.txt | |
cat commits.txt | |
- name: Summarize changelog with Groq API | |
if: steps.check-version.outputs.tag | |
id: summarize-changelog | |
run: | | |
changelog=$(cat commits.txt) | |
json_payload=$(jq -n \ | |
--arg content "$changelog" \ | |
'{ | |
messages: [ | |
{ | |
role: "system", | |
content: "You will receive a commit history. Your task is to extract and present the top 20% most relevant changes as a concise list, each item preceded by a bullet point (-). Each entry should be as brief as possible, ideally 1 to 4 words, summarizing the key updates and enhancements. Ignore changes related to .yml files, Git Keep, chore(format), \"colab,\" \"Major fix,\" and phrases like \"Updating Files\" or similar cases (e.g., \"Update Applio (train.py, preprocess.py, core.py)\"). Summarization Rules: Summarize commits like Update ___.py, Fix _____.py, Disable, Delete, or Merge as \"Fixing Code Issues\" and include specific details in parentheses only if they refer to a specific feature, module, or file name. For entries starting with \"Add,\" \"Fix,\" \"Improving,\" \"Improve,\" \"Rework,\" \"Update,\" or \"Updating,\" ensure they are merged into a single entry, with specific details included in parentheses. Ensure the details within parentheses are concise and directly relevant to the change, focusing on the affected feature or module. If multiple commits fall under \"Fixing Code Issues,\" consolidate them into one entry, mentioning only the major areas or modules affected without listing every specific fix. If the commit is related to \"tab\" or \"UI,\" merge it under \"Improving Code\" and include specific details in parentheses if necessary. Replace entries that use phrases like \"Updating Files\" or similar detailed updates (e.g., \"Update Applio (train.py, preprocess.py, core.py)\") with a summary of the actual changes or enhancements made, focusing on the specific impact or feature. Eliminate duplicates by merging similar entries into a single summary where possible. Ensure each entry is distinct and avoids repetition of similar details or terminology. Final Checks: After generating the list, review it to identify and merge any similar entries or duplicates. Ensure that each entry is concise, distinct, and free of redundancy. Limit the list to a maximum of 5 items. Each entry should start with an uppercase letter. Exclude any entries that include \"Major fix\" and ignore them if found. Note: Do not include any commentary or additional text; return only the list. This prompt could be improved by adding examples of commit messages and their expected summaries to provide clearer guidance." | |
}, | |
{ | |
role: "user", | |
content: $content | |
} | |
], | |
model: "llama-3.1-70b-versatile", | |
temperature: 0.6, | |
max_tokens: 600, | |
top_p: 1, | |
stream: false, | |
stop: null | |
}') | |
echo "json_payload: $json_payload" | |
curl "https://api.groq.com/openai/v1/chat/completions" \ | |
-X POST \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: Bearer ${{ secrets.GROQ_API_KEY }}" \ | |
-d "$json_payload" \ | |
| jq -r '.choices[0].message.content' > summarized_changelog.txt | |
- name: Set up Node.js | |
if: steps.check-version.outputs.tag | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install gh-release | |
if: steps.check-version.outputs.tag | |
run: | | |
npm install https://github.com/IAHispano/gh-release.git | |
- name: Create package.json | |
if: steps.check-version.outputs.tag | |
run: | | |
cd /home/runner/work/Applio/Applio | |
echo '{}' > package.json | |
jq \ | |
--arg version "${{ steps.check-version.outputs.tag }}" \ | |
--arg url "git+https://github.com/IAHispano/Applio.git" \ | |
'. + {version: $version, repository: {url: $url}}' \ | |
package.json > tmp.$$.json && mv tmp.$$.json package.json | |
cat package.json | |
- name: Publish release | |
if: steps.check-version.outputs.tag | |
run: | | |
cd /home/runner/work/Applio/Applio && \ | |
tag_name="${{ steps.check-version.outputs.tag }}" | |
changelog=$(cat summarized_changelog.txt) | |
GH_RELEASE_GITHUB_API_TOKEN=${{ secrets.GITHUB_TOKEN }} npx gh-release \ | |
-t "${tag_name}" \ | |
-n "Applio ${tag_name}" \ | |
-c "main" \ | |
-b "## Important Installation Guidelines | |
### Before You Install Applio | |
Please review these essential instructions to ensure a smooth installation: | |
- **File Location**: Place the Applio files in a dedicated folder on your C drive. | |
- **Access Control**: Avoid placing Applio in folders that require elevated privileges. | |
- **Administrator Rights**: Do not run the \`run-install.bat\` script with administrator privileges. | |
- **Path Requirements**: Ensure the installation path is free of spaces or special characters. | |
- **Security Settings**: Temporarily disable your antivirus and firewall to prevent any issues with missing dependencies during installation. | |
### Installation Steps | |
1. **Download**: Get the .zip file from [this link](https://github.com/IAHispano/Applio/archive/refs/tags/${{ steps.check-version.outputs.tag }}.zip). | |
2. **Run the Installer**: Extract the files and execute the \`run-install.bat\` script. | |
3. **Start Applio**: Launch Applio by running the \`run-applio.bat\` script. | |
### Prefer a Simpler Installation? | |
> [!TIP] | |
> For the best experience, we highly recommend using the pre-compiled version. Compiling the code yourself may lead to instabilities. | |
- **Download Compiled Version**: Get the zip from [this link](https://huggingface.co/IAHispano/Applio/resolve/main/Compiled/Windows/ApplioV${{ steps.check-version.outputs.tag }}.zip). | |
- **Run Applio**: Extract the `.zip` file, then open the \`run-applio.bat\` file. | |
## What's New in This Release | |
${changelog} | |
**Full Changelog**: https://github.com/IAHispano/Applio/compare/${{ steps.check-version.outputs.previous-version }}...${{ steps.check-version.outputs.tag }} " \ | |
-o "IAHispano" \ | |
-r "Applio" \ | |
-w /home/runner/work/Applio/Applio \ | |
-y | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- name: Trigger Pre-Compiled | |
if: steps.check-version.outputs.tag | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
await github.rest.actions.createWorkflowDispatch({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
workflow_id: 'pre_compiled.yml', | |
ref: context.ref, | |
}); | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |