Skip to content

v3.13.5 - copy file name: context menu + slow double-click highlight #176

v3.13.5 - copy file name: context menu + slow double-click highlight

v3.13.5 - copy file name: context menu + slow double-click highlight #176

Workflow file for this run

name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build-windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Install dependencies
run: npm ci
- name: Download restic binary
run: npm run download-restic -- --current
# Build SolidWorks service - requires SolidWorks interop DLLs in the project
- name: Build SolidWorks Service
id: sw-service
continue-on-error: true
run: |
dotnet build solidworks-service/BluePLM.SolidWorksService -c Release
- name: Copy SolidWorks Service to resources
if: steps.sw-service.outcome == 'success'
run: |
New-Item -ItemType Directory -Force -Path resources/bin/win32
Copy-Item solidworks-service/BluePLM.SolidWorksService/bin/Release/*.exe resources/bin/win32/
Copy-Item solidworks-service/BluePLM.SolidWorksService/bin/Release/*.dll resources/bin/win32/
Copy-Item solidworks-service/BluePLM.SolidWorksService/bin/Release/*.config resources/bin/win32/
Write-Host "SolidWorks service copied to resources/bin/win32"
- name: Build Electron app
run: npm run build -- --publish never
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: windows-build
path: |
release/*.exe
release/latest.yml
if-no-files-found: error
build-macos:
runs-on: macos-latest
steps:
- name: Checkout
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: Download restic binary
run: npm run download-restic -- --current
- name: Build Electron app
run: npm run build -- --publish never
- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: macos-build
path: |
release/*.dmg
release/*.zip
release/latest-mac.yml
if-no-files-found: error
build-api:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
env:
REGISTRY: ghcr.io
IMAGE_NAME: bluerobotics/blueplm-api
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
type=sha,prefix=
type=ref,event=tag
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./api/Dockerfile
push: true
no-cache: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
release:
needs: [build-windows, build-macos, build-api]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Windows artifacts
uses: actions/download-artifact@v4
with:
name: windows-build
path: dist/windows
- name: Download macOS artifacts
uses: actions/download-artifact@v4
with:
name: macos-build
path: dist/macos
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Extract changelog for version
id: changelog
run: |
VERSION="${GITHUB_REF#refs/tags/v}"
CHANGELOG=$(awk "/^## \[${VERSION}\]/{flag=1; next} /^## \[/{flag=0} flag" CHANGELOG.md)
echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v1
with:
name: ${{ steps.get_version.outputs.VERSION }}
body: ${{ steps.changelog.outputs.CHANGELOG }}
draft: false
prerelease: false
files: |
dist/windows/*
dist/macos/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}