Skip to content

Update Full Repository Zip #12

Update Full Repository Zip

Update Full Repository Zip #12

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