Update Full Repository Zip #12
This file contains hidden or 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: Update Full Repository Zip | |
on: | |
push: | |
branches: ["main"] | |
workflow_dispatch: | |
jobs: | |
update-zip: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repository with full history | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # This ensures we get the full git history | |
- name: Create zip file with full git history | |
run: | | |
# Create a zip file containing the entire repository including .git folder | |
# zip -r tts-webui-full.zip . -x "node_modules/*" "installer_files/*" "*.pyc" "__pycache__/*" | |
zip -r tts-webui-full.zip . | |
- name: Get latest release | |
id: latest_release | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const releases = await github.rest.repos.listReleases({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
per_page: 1 | |
}); | |
if (releases.data.length === 0) { | |
core.setFailed('No releases found'); | |
return; | |
} | |
return releases.data[0]; | |
result-encoding: string | |
- name: Delete existing asset if it exists | |
uses: actions/github-script@v6 | |
continue-on-error: true | |
with: | |
script: | | |
// Get the latest release | |
const { data: release } = await github.rest.repos.getLatestRelease({ | |
owner: context.repo.owner, | |
repo: context.repo.repo | |
}); | |
const assets = release.assets; | |
const assetName = 'tts-webui-full.zip'; | |
for (const asset of assets) { | |
if (asset.name === assetName) { | |
console.log(`Deleting existing asset: ${asset.name} (${asset.id})`); | |
await github.rest.repos.deleteReleaseAsset({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
asset_id: asset.id | |
}); | |
break; | |
} | |
} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Upload release asset | |
# uses: actions/github-script@v6 | |
# with: | |
# script: | | |
# const fs = require('fs'); | |
# const uploadUrl = process.env.UPLOAD_URL; | |
# const assetPath = './tts-webui-full.zip'; | |
# const assetName = 'tts-webui-full.zip'; | |
# const assetContentType = 'application/zip'; | |
# const data = fs.readFileSync(assetPath); | |
# await github.rest.repos.uploadReleaseAsset({ | |
# url: uploadUrl.replace(/{[^{}]*}/, ''), | |
# headers: { | |
# 'content-type': assetContentType, | |
# 'content-length': data.length | |
# }, | |
# name: assetName, | |
# data: data | |
# }); | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
# env: | |
# UPLOAD_URL: ${{ steps.latest_release.outputs.result.upload_url }} | |
- name: Upload ZIP | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tts-webui-full | |
path: tts-webui-full.zip |