mirror of
https://github.com/lone-cloud/gerbil
synced 2026-06-03 19:54:44 -07:00
fix release workflows to work on windows?
This commit is contained in:
parent
864aaabe9e
commit
8ea62fe378
3 changed files with 71 additions and 41 deletions
80
.github/workflows/aur-release.yml
vendored
80
.github/workflows/aur-release.yml
vendored
|
|
@ -30,32 +30,37 @@ jobs:
|
||||||
|
|
||||||
- name: Get release information
|
- name: Get release information
|
||||||
id: release_info
|
id: release_info
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const fs = require('fs');
|
||||||
|
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
||||||
|
|
||||||
|
const tag = "${{ inputs.tag }}";
|
||||||
|
const version = tag.replace(/^v/, '');
|
||||||
|
const authorName = packageJson.author.name;
|
||||||
|
const authorEmail = packageJson.author.email;
|
||||||
|
const appImageUrl = `https://github.com/lone-cloud/friendly-kobold/releases/download/${tag}/Friendly%20Kobold-${version}.AppImage`;
|
||||||
|
|
||||||
|
core.setOutput('version', version);
|
||||||
|
core.setOutput('tag', tag);
|
||||||
|
core.setOutput('author_name', authorName);
|
||||||
|
core.setOutput('author_email', authorEmail);
|
||||||
|
core.setOutput('appimage_url', appImageUrl);
|
||||||
|
|
||||||
|
console.log(`Release info:`);
|
||||||
|
console.log(`Version: ${version}`);
|
||||||
|
console.log(`Tag: ${tag}`);
|
||||||
|
console.log(`Author: ${authorName} <${authorEmail}>`);
|
||||||
|
console.log(`AppImage URL: ${appImageUrl}`);
|
||||||
|
|
||||||
|
- name: Download AppImage and calculate SHA256
|
||||||
|
id: sha_calc
|
||||||
run: |
|
run: |
|
||||||
TAG="${{ inputs.tag }}"
|
|
||||||
VERSION=${TAG#v}
|
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
# Get author info from package.json
|
|
||||||
AUTHOR_NAME=$(node -p "require('./package.json').author.name")
|
|
||||||
AUTHOR_EMAIL=$(node -p "require('./package.json').author.email")
|
|
||||||
echo "author_name=$AUTHOR_NAME" >> $GITHUB_OUTPUT
|
|
||||||
echo "author_email=$AUTHOR_EMAIL" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
# Get AppImage download URL from GitHub release
|
|
||||||
APPIMAGE_URL="https://github.com/lone-cloud/friendly-kobold/releases/download/$TAG/Friendly%20Kobold-$VERSION.AppImage"
|
|
||||||
echo "appimage_url=$APPIMAGE_URL" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
# Download AppImage to calculate SHA256
|
# Download AppImage to calculate SHA256
|
||||||
curl -L -o "friendly-kobold-$VERSION.AppImage" "$APPIMAGE_URL"
|
curl -L -o "friendly-kobold-${{ steps.release_info.outputs.version }}.AppImage" "${{ steps.release_info.outputs.appimage_url }}"
|
||||||
SHA256=$(sha256sum "friendly-kobold-$VERSION.AppImage" | cut -d' ' -f1)
|
SHA256=$(sha256sum "friendly-kobold-${{ steps.release_info.outputs.version }}.AppImage" | cut -d' ' -f1)
|
||||||
echo "sha256=$SHA256" >> $GITHUB_OUTPUT
|
echo "sha256=$SHA256" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
echo "Release info:"
|
|
||||||
echo "Version: $VERSION"
|
|
||||||
echo "Tag: $TAG"
|
|
||||||
echo "Author: $AUTHOR_NAME <$AUTHOR_EMAIL>"
|
|
||||||
echo "AppImage URL: $APPIMAGE_URL"
|
|
||||||
echo "SHA256: $SHA256"
|
echo "SHA256: $SHA256"
|
||||||
|
|
||||||
- name: Generate PKGBUILD
|
- name: Generate PKGBUILD
|
||||||
|
|
@ -74,7 +79,7 @@ jobs:
|
||||||
provides=('friendly-kobold')
|
provides=('friendly-kobold')
|
||||||
conflicts=('friendly-kobold-git')
|
conflicts=('friendly-kobold-git')
|
||||||
source=("friendly-kobold-${pkgver}.AppImage::${{ steps.release_info.outputs.appimage_url }}")
|
source=("friendly-kobold-${pkgver}.AppImage::${{ steps.release_info.outputs.appimage_url }}")
|
||||||
sha256sums=('${{ steps.release_info.outputs.sha256 }}')
|
sha256sums=('${{ steps.sha_calc.outputs.sha256 }}')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
chmod +x "friendly-kobold-${pkgver}.AppImage"
|
chmod +x "friendly-kobold-${pkgver}.AppImage"
|
||||||
|
|
@ -116,14 +121,29 @@ jobs:
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Validate PKGBUILD
|
- name: Create .SRCINFO
|
||||||
run: |
|
run: |
|
||||||
# Install tools needed for validation
|
# Create .SRCINFO file (required for AUR)
|
||||||
sudo pacman -Sy --noconfirm namcap
|
cat > .SRCINFO << 'EOF'
|
||||||
|
pkgbase = friendly-kobold
|
||||||
|
pkgdesc = A modern Electron shell for KoboldCpp
|
||||||
|
pkgver = ${{ steps.release_info.outputs.version }}
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/lone-cloud/friendly-kobold
|
||||||
|
arch = x86_64
|
||||||
|
license = AGPL-3.0-or-later
|
||||||
|
depends = gtk3
|
||||||
|
depends = libxss
|
||||||
|
depends = nss
|
||||||
|
depends = alsa-lib
|
||||||
|
optdepends = koboldcpp: AI language model backend
|
||||||
|
provides = friendly-kobold
|
||||||
|
conflicts = friendly-kobold-git
|
||||||
|
source = friendly-kobold-${{ steps.release_info.outputs.version }}.AppImage::${{ steps.release_info.outputs.appimage_url }}
|
||||||
|
sha256sums = ${{ steps.sha_calc.outputs.sha256 }}
|
||||||
|
|
||||||
# Check PKGBUILD syntax
|
pkgname = friendly-kobold
|
||||||
makepkg --printsrcinfo > .SRCINFO
|
EOF
|
||||||
namcap PKGBUILD || true
|
|
||||||
|
|
||||||
- name: Publish to AUR
|
- name: Publish to AUR
|
||||||
uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
|
uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
|
||||||
|
|
|
||||||
13
.github/workflows/ci.yml
vendored
13
.github/workflows/ci.yml
vendored
|
|
@ -16,10 +16,15 @@ jobs:
|
||||||
|
|
||||||
- name: Get Node.js version from package.json
|
- name: Get Node.js version from package.json
|
||||||
id: versions
|
id: versions
|
||||||
run: |
|
uses: actions/github-script@v7
|
||||||
NODE_VERSION=$(node -p "require('./package.json').volta.node")
|
with:
|
||||||
echo "node-version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
script: |
|
||||||
echo "📦 Using Node.js $NODE_VERSION from package.json"
|
const fs = require('fs');
|
||||||
|
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
||||||
|
const nodeVersion = packageJson.volta.node;
|
||||||
|
|
||||||
|
core.setOutput('node-version', nodeVersion);
|
||||||
|
console.log(`📦 Using Node.js ${nodeVersion} from package.json`);
|
||||||
|
|
||||||
- name: Enable Corepack
|
- name: Enable Corepack
|
||||||
run: corepack enable
|
run: corepack enable
|
||||||
|
|
|
||||||
19
.github/workflows/release.yml
vendored
19
.github/workflows/release.yml
vendored
|
|
@ -29,13 +29,18 @@ jobs:
|
||||||
|
|
||||||
- name: Get Node.js and Yarn versions from package.json
|
- name: Get Node.js and Yarn versions from package.json
|
||||||
id: versions
|
id: versions
|
||||||
run: |
|
uses: actions/github-script@v7
|
||||||
# Use system node to read package.json (GitHub runners have Node.js pre-installed)
|
with:
|
||||||
NODE_VERSION=$(node -p "require('./package.json').volta.node")
|
script: |
|
||||||
YARN_VERSION=$(node -p "require('./package.json').volta.yarn")
|
const fs = require('fs');
|
||||||
echo "node-version=$NODE_VERSION" >> $GITHUB_OUTPUT
|
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
||||||
echo "yarn-version=$YARN_VERSION" >> $GITHUB_OUTPUT
|
const nodeVersion = packageJson.volta.node;
|
||||||
echo "📦 Using Node.js $NODE_VERSION and Yarn $YARN_VERSION from package.json"
|
const yarnVersion = packageJson.volta.yarn;
|
||||||
|
|
||||||
|
core.setOutput('node-version', nodeVersion);
|
||||||
|
core.setOutput('yarn-version', yarnVersion);
|
||||||
|
|
||||||
|
console.log(`📦 Using Node.js ${nodeVersion} and Yarn ${yarnVersion} from package.json`);
|
||||||
|
|
||||||
- name: Setup Node.js with Volta
|
- name: Setup Node.js with Volta
|
||||||
uses: volta-cli/action@v4
|
uses: volta-cli/action@v4
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue