mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 18:10:18 +05:30
- Remove signAndEditExecutable:false so code signing works properly - Add legalTrademarks and copyright metadata to build config - Add publisherName via build.copyright (embedded in PE resources) - Create scripts/create-selfsigned-cert.ps1 for local dev signing - Update release.yml: build on windows-latest runner (not Wine), auto-sign when CSC_LINK_BASE64/CSC_KEY_PASSWORD secrets present, fall back to unsigned otherwise - Add lint step to ci.yml (Phase 4.3 plan gap) - Add .vscode/launch.json debug configs (Phase 4.3 plan gap) - Fix .gitignore: exclude *.pfx/*.p12 cert files, track launch.json, fix concatenated agents.md/coverage/ lines Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
116 lines
2.7 KiB
YAML
116 lines
2.7 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags: ['v*']
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
cache: npm
|
|
|
|
- name: Install rpmbuild
|
|
run: sudo apt-get update && sudo apt-get install -y rpm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Run tests
|
|
run: npm test
|
|
|
|
- name: Build Linux packages
|
|
run: npm run build:linux
|
|
|
|
- name: Upload Linux artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: linux-artifacts
|
|
path: |
|
|
dist/*.deb
|
|
dist/*.AppImage
|
|
dist/*.snap
|
|
dist/*.rpm
|
|
retention-days: 5
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
cache: npm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Run tests
|
|
run: npm test
|
|
|
|
- name: Decode certificate (if available)
|
|
if: ${{ secrets.CSC_LINK_BASE64 != '' }}
|
|
shell: pwsh
|
|
run: |
|
|
$bytes = [Convert]::FromBase64String("${{ secrets.CSC_LINK_BASE64 }}")
|
|
[IO.File]::WriteAllBytes("${{ github.workspace }}\code-signing-cert.pfx", $bytes)
|
|
echo "CERT_AVAILABLE=true" >> $env:GITHUB_ENV
|
|
|
|
- name: Build Windows packages (signed)
|
|
if: ${{ env.CERT_AVAILABLE == 'true' }}
|
|
env:
|
|
CSC_LINK: code-signing-cert.pfx
|
|
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
|
run: npm run build:win-signed
|
|
|
|
- name: Build Windows packages (unsigned)
|
|
if: ${{ env.CERT_AVAILABLE != 'true' }}
|
|
env:
|
|
CSC_IDENTITY_AUTO_DISCOVERY: false
|
|
run: npm run build:win-unsigned
|
|
|
|
- name: Upload Windows artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: windows-artifacts
|
|
path: |
|
|
dist/*.exe
|
|
dist/*-win.zip
|
|
dist/*.zip
|
|
retention-days: 5
|
|
|
|
release:
|
|
needs: [build-linux, build-windows]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Download Linux artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: linux-artifacts
|
|
path: dist
|
|
|
|
- name: Download Windows artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: windows-artifacts
|
|
path: dist
|
|
|
|
- name: Create GitHub Release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
generate_release_notes: true
|
|
files: dist/*
|