Skip to content

Commit 36b8fec

Browse files
committed
trying something
1 parent bfeb9f9 commit 36b8fec

File tree

1 file changed

+46
-33
lines changed

1 file changed

+46
-33
lines changed

.github/workflows/package-build.yaml

Lines changed: 46 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,10 @@ name: Build and Release
22

33
on:
44
push:
5-
tags:
6-
- "v*"
5+
branches: [build-sign-test]
76

87
jobs:
9-
check-branch:
10-
runs-on: ubuntu-latest
11-
steps:
12-
- uses: actions/checkout@v4
13-
- name: Verify tag is on main
14-
run: |
15-
if [ "$(git branch --contains $GITHUB_REF)" != "* main" ]; then
16-
echo "Tag $GITHUB_REF is not on main branch"
17-
exit 1
18-
fi
198
build:
20-
needs: check-branch
219
runs-on: ${{ matrix.os }}
2210
strategy:
2311
matrix:
@@ -32,7 +20,6 @@ jobs:
3220

3321
steps:
3422
- uses: actions/checkout@v4
35-
3623
- name: Set up Python
3724
uses: actions/setup-python@v4
3825
with:
@@ -82,13 +69,48 @@ jobs:
8269
pyinstaller --onefile --name ecooptimizer-server-dev $(which eco-ext-dev)
8370
mv dist/ecooptimizer-server-dev dist/ecooptimizer-server-dev-${{ matrix.artifact_name }}
8471
72+
- name: Install signing tools
73+
if: matrix.os == 'windows-latest'
74+
run: |
75+
choco install osslsigncode -y
76+
77+
- name: Sign Windows binaries
78+
if: matrix.os == 'windows-latest'
79+
run: |
80+
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=EcoOptimizer"
81+
osslsigncode sign -certs cert.pem -key key.pem -n "EcoOptimizer" -t http://timestamp.digicert.com -in dist/ecooptimizer-server-${{ matrix.artifact_name }} -out dist/ecooptimizer-server-${{ matrix.artifact_name }}.signed
82+
mv dist/ecooptimizer-server-${{ matrix.artifact_name }}.signed dist/ecooptimizer-server-${{ matrix.artifact_name }}
83+
osslsigncode sign -certs cert.pem -key key.pem -n "EcoOptimizer" -t http://timestamp.digicert.com -in dist/ecooptimizer-server-dev-${{ matrix.artifact_name }} -out dist/ecooptimizer-server-dev-${{ matrix.artifact_name }}.signed
84+
mv dist/ecooptimizer-server-dev-${{ matrix.artifact_name }}.signed dist/ecooptimizer-server-dev-${{ matrix.artifact_name }}
85+
86+
- name: Sign macOS binaries
87+
if: matrix.os == 'macos-latest'
88+
run: |
89+
codesign --force --deep --sign - dist/ecooptimizer-server-${{ matrix.artifact_name }}
90+
codesign --force --deep --sign - dist/ecooptimizer-server-dev-${{ matrix.artifact_name }}
91+
92+
- name: Set up GPG (Linux)
93+
if: matrix.os == 'ubuntu-latest'
94+
run: |
95+
sudo apt-get install -y gpg
96+
echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --batch --import
97+
gpg --list-secret-keys
98+
99+
- name: Sign Linux binaries
100+
if: matrix.os == 'ubuntu-latest'
101+
run: |
102+
cd dist
103+
gpg --detach-sign --armor -u "${{ secrets.GPG_KEY_ID }}" ecooptimizer-server-${{ matrix.artifact_name }}
104+
gpg --detach-sign --armor -u "${{ secrets.GPG_KEY_ID }}" ecooptimizer-server-dev-${{ matrix.artifact_name }}
105+
85106
- name: Upload artifacts
86107
uses: actions/upload-artifact@v4
87108
with:
88109
name: artifacts-${{ matrix.os }}
89110
path: |
90111
dist/ecooptimizer-server-*
91112
dist/ecooptimizer-server-dev-*
113+
dist/*.asc # For Linux GPG signatures
92114
if-no-files-found: error
93115

94116
create-release:
@@ -100,7 +122,7 @@ jobs:
100122
with:
101123
path: artifacts
102124
pattern: artifacts-*
103-
merge-multiple: false # Keep separate folders per OS
125+
merge-multiple: false
104126

105127
- name: Create release
106128
uses: softprops/action-gh-release@v1
@@ -109,24 +131,15 @@ jobs:
109131
name: ${{ github.ref_name }}
110132
body: |
111133
${{ github.event.head_commit.message }}
112-
113-
## EcoOptimizer Server Executables
114-
This release contains the standalone server executables for launching the EcoOptimizer analysis engine.
115-
These are designed to work with the corresponding **EcoOptimizer VS Code Extension**.
116-
117-
### Included Artifacts
118-
- **Production Server**: `ecooptimizer-server-<platform>`
119-
(Stable version for production use)
120-
- **Development Server**: `ecooptimizer-server-dev-<platform>`
121-
(Development version with debug features)
122-
123-
### Platform Support
124-
- Linux (`linux-x64`)
125-
- Windows (`windows-x64.exe`)
126-
- macOS (`macos-x64`)
134+
135+
**Signed Artifacts:**
136+
- Windows: Authenticode-signed
137+
- macOS: Ad-hoc signed
138+
- Linux: GPG-signed (.asc files)
127139
files: |
128-
artifacts/artifacts-ubuntu-latest/dist/*
129-
artifacts/artifacts-windows-latest/dist/*
130-
artifacts/artifacts-macos-latest/dist/*
140+
artifacts/artifacts-ubuntu-latest/*
141+
artifacts/artifacts-windows-latest/*
142+
artifacts/artifacts-macos-latest/*
143+
draft: true
131144
env:
132145
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)