Skip to content

Build and publish binaries #14

Build and publish binaries

Build and publish binaries #14

name: Build and publish binaries
on:
release:
types: [published]
jobs:
build-and-publish-binaries:
name: Build and publish binaries (${{ matrix.os }})
runs-on: ${{ matrix.os }}
permissions:
contents: write
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Inject version
uses: richardrigutins/replace-in-files@v2
with:
files: "package.json"
search-text: "\"version\": \"0.0.0\""
replacement-text: "\"version\": \"${{ github.event.release.tag_name }}\""
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "22"
- run: npm ci
- run: npm run build
env:
THYME_VERSION: ${{ github.event.release.tag_name }}
- if: ${{ matrix.os == 'ubuntu-latest' }}
run: chmod +x releases/*/thyme-*.AppImage
- name: Rename and move release binaries
uses: actions/github-script@v7
with:
script: |
const fs = require("fs");
const path = require("path");
const version = "${{ github.event.release.tag_name }}";
const versionWithoutV = version.includes("v") ? version.slice(1) : version;
fs.mkdirSync("./releaseBinaries");
if (${{ matrix.os == 'windows-latest'}}) fs.renameSync(`release/${versionWithoutV}/thyme-${versionWithoutV}-win-setup.exe`, `releaseBinaries/thyme-${version}-win-setup.exe`);
if (${{ matrix.os == 'ubuntu-latest'}}) fs.renameSync(`release/${versionWithoutV}/thyme-${versionWithoutV}-linux.AppImage`, `releaseBinaries/thyme-${version}-linux.AppImage`);
- name: Attach binaries to release
uses: softprops/action-gh-release@v2
with:
files: releaseBinaries/*