Skip to content

Commit 398735f

Browse files
authored
Merge pull request #3569 from ActiveState/version/0-48-0-RC1
Version 0.48.0-RC1
2 parents 5a667f6 + 20cdc35 commit 398735f

1,725 files changed

Lines changed: 229603 additions & 225054 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
24.6 MB
Binary file not shown.
File renamed without changes.

.github/workflows/build.yml

Lines changed: 61 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ jobs:
3636
strategy:
3737
matrix:
3838
go-version:
39-
- 1.22.12
39+
- 1.24.6
4040
sys:
41-
- {os: ubuntu-latest}
42-
- {os: macos-13, shell: zsh}
43-
- {os: windows-2019}
41+
- { os: ubuntu-latest }
42+
- { os: macos-13, shell: zsh }
43+
- { os: macos-latest, shell: zsh }
44+
- { os: windows-2025 }
45+
- { os: ubuntu-24.04-arm }
4446
fail-fast: false
4547
runs-on: ${{ matrix.sys.os }}
4648
env:
@@ -74,29 +76,30 @@ jobs:
7476

7577
# === Install gotestfmt ===
7678
- name: Set up gotestfmt
77-
uses: gotesttools/gotestfmt-action@v2
78-
with:
79-
token: ${{ secrets.GITHUB_TOKEN }}
79+
shell: bash
80+
run: go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
8081

8182
- # === Install State Tool ===
8283
name: Install State Tool
8384
uses: ActiveState/setup-state-tool@v1
84-
if: runner.os != 'Windows'
85+
if: "!contains(matrix.sys.os, 'arm')"
8586

86-
- # === Install State Tool (Windows) ===
87-
name: Install State Tool (Windows)
88-
if: runner.os == 'Windows'
89-
shell: pwsh
87+
- # === Install State Tool (ARM64) ===
88+
name: Install State Tool (ARM64)
89+
if: contains(matrix.sys.os, 'arm')
90+
shell: bash
9091
run: |
91-
Invoke-Expression -Command ".\installers\install.ps1 -n"
92-
echo "$env:LOCALAPPDATA\ActiveState\StateTool\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
93-
Invoke-Expression "$env:LOCALAPPDATA\ActiveState\StateTool\release\bin\state config set optin.unstable true"
92+
./installers/install.sh -b beta
93+
echo "$HOME/.local/ActiveState/StateTool/beta/bin" >> $GITHUB_PATH
94+
"$HOME/.local/ActiveState/StateTool/beta/bin/state" config set optin.unstable true
9495
9596
- # === Setup ===
9697
name: Setup
9798
shell: bash
9899
run: |
99-
bin=$(pwd)/.github/deps/${{ runner.os }}/bin
100+
arch="amd64"
101+
if [[ ${{ contains(matrix.sys.os, 'arm') }} = true ]]; then arch="arm64"; fi
102+
bin=$(pwd)/.github/deps/${{ runner.os }}/$arch/bin
100103
echo "Adding $bin to PATH"
101104
echo "$bin" >> $GITHUB_PATH
102105
@@ -135,7 +138,6 @@ jobs:
135138
shell: bash
136139
timeout-minutes: 15
137140
run: |
138-
export PATH="$(pwd)/.github/deps/${{ runner.os }}/bin:$PATH"
139141
parallelize "$(cat <<'EOF'
140142
[
141143
{
@@ -169,13 +171,15 @@ jobs:
169171
{
170172
"ID": "Build-Executor",
171173
"Args": ["state", "run", "build-exec"]
174+
},
175+
{
176+
"ID": "Build-MCP",
177+
"Args": ["state", "run", "build-mcp"]
172178
}
173179
]
174180
EOF
175181
)"
176182
env:
177-
CODE_SIGNING_PASSWD: ${{ secrets.CODE_SIGNING_PASSWD }}
178-
MSI_CERT_BASE64: ${{ secrets.MSI_CERT_BASE64 }}
179183
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
180184
JIRA_USERNAME: ${{ secrets.JIRA_EMAIL }}
181185
JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
@@ -187,12 +191,19 @@ jobs:
187191
if: "!contains(fromJSON('[\"refs/heads/beta\", \"refs/heads/release\", \"refs/heads/LTS\", \"refs/heads/master\"]'), github.ref) && !startsWith(github.event.pull_request.head.ref, 'version/')"
188192
run: parallelize results Check-Format
189193

194+
- # === Raw Unit Tests ===
195+
name: Raw Unit Tests
196+
id: raw_unit_tests
197+
shell: bash
198+
run: parallelize results Unit-Tests
199+
continue-on-error: true
200+
190201
- # === Unit Tests ===
191202
name: Unit Tests
192203
id: unit_tests
193204
shell: bash
194205
run: parallelize results Unit-Tests | gotestfmt -hide empty-packages
195-
continue-on-error: ${{ github.event_name != 'schedule' }}
206+
continue-on-error: true # This is captured by the "Check if Unit Tests Failed" step
196207

197208
- # === "Build: CLI" ===
198209
name: "Build: CLI"
@@ -224,41 +235,10 @@ jobs:
224235
shell: bash
225236
run: parallelize results Build-Executor
226237

227-
- # === Prepare Windows Cert ===
228-
name: Prepare Windows Cert
238+
- # === "Build: MCP" ===
239+
name: "Build: MCP"
229240
shell: bash
230-
if: runner.os == 'Windows'
231-
run: |
232-
echo $MSI_CERT_BASE64 | base64 --decode > Cert.p12
233-
env:
234-
MSI_CERT_BASE64: ${{ secrets.MSI_CERT_BASE64 }}
235-
236-
- # === Sign Binaries (Windows only) ===
237-
name: Sign Binaries (Windows only)
238-
shell: bash
239-
if: runner.os == 'Windows' && contains(fromJSON('["refs/heads/beta", "refs/heads/release", "refs/heads/LTS"]'), github.ref)
240-
run: |
241-
export PATH=/c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/10.0.16299.0/x86/:$PATH
242-
243-
signtool.exe sign -d "ActiveState State Tool" -f "Cert.p12" -p ${CODE_SIGNING_PASSWD} ./build/state.exe
244-
signtool.exe sign -d "ActiveState State Service" -f "Cert.p12" -p ${CODE_SIGNING_PASSWD} ./build/state-svc.exe
245-
signtool.exe sign -d "ActiveState State Installer" -f "Cert.p12" -p ${CODE_SIGNING_PASSWD} ./build/state-installer.exe
246-
signtool.exe sign -d "ActiveState State Tool Remote Installer" -f "Cert.p12" -p ${CODE_SIGNING_PASSWD} ./build/state-remote-installer.exe
247-
env:
248-
CODE_SIGNING_PASSWD: ${{ secrets.CODE_SIGNING_PASSWD }}
249-
250-
- # === Sign Install Scripts (Windows only) ===
251-
name: Sign Install Scripts (Windows only)
252-
shell: powershell
253-
if: runner.os == 'Windows' && contains(fromJSON('["refs/heads/beta", "refs/heads/release", "refs/heads/LTS"]'), github.ref)
254-
run: |
255-
$branchInfix = $Env:GITHUB_REF.Replace("refs/heads/", "").Replace("release", "")
256-
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
257-
$cert.Import('Cert.p12',$env:CODE_SIGNING_PASSWD,'DefaultKeySet')
258-
Set-AuthenticodeSignature -FilePath build\installers\$branchInfix\install.ps1 -Certificate $cert
259-
Set-AuthenticodeSignature -FilePath build\installers\$branchInfix\legacy-install.ps1 -Certificate $cert
260-
env:
261-
CODE_SIGNING_PASSWD: ${{ secrets.CODE_SIGNING_PASSWD }}
241+
run: parallelize results Build-MCP
262242

263243
- # === Generate Update ===
264244
name: Generate Update
@@ -299,6 +279,7 @@ jobs:
299279
fi
300280
fi
301281
282+
echo "Deploying for integration tests"
302283
state run deploy-updates
303284
state run deploy-installers
304285
state run deploy-remote-installer
@@ -335,6 +316,10 @@ jobs:
335316
fi
336317
else
337318
TEST_SUITE_TAGS="all"
319+
if [[ ${{ contains(matrix.sys.os, 'arm') }} = true ]]; then
320+
echo "Skipping integration tests on ARM"
321+
exit 0
322+
fi
338323
fi
339324
340325
echo "Running integration tests with tags: $TEST_SUITE_TAGS (empty means every test not specifically tagged)"
@@ -352,9 +337,9 @@ jobs:
352337
INTEGRATION_TEST_TOKEN: ${{ secrets.INTEGRATION_TEST_TOKEN }}
353338
PLATFORM_API_TOKEN: ${{ secrets.PLATFORM_API_TOKEN }}
354339

355-
- # === Fail If Unscheduled Unit Tests Failed (Expand 'Unit Tests' above for more information) ===
356-
name: Fail If Unscheduled Unit Tests Failed
357-
if: github.event_name != 'schedule' && steps.unit_tests.outcome == 'failure'
340+
- # === Check if Unit Tests Failed ===
341+
name: Check if Unit Tests Failed
342+
if: steps.unit_tests.outcome == 'failure'
358343
shell: bash
359344
run: exit 1
360345

@@ -436,7 +421,7 @@ jobs:
436421
name: Deploy
437422
needs:
438423
- scan
439-
runs-on: ubuntu-20.04
424+
runs-on: ubuntu-latest
440425
env:
441426
ACTIVESTATE_CI: true
442427
SHELL: bash
@@ -458,7 +443,7 @@ jobs:
458443
name: Install Go
459444
uses: actions/setup-go@v5
460445
with:
461-
go-version: 1.22.x
446+
go-version: 1.23.x
462447

463448
- # === Install State Tool ===
464449
name: Install State Tool
@@ -508,15 +493,26 @@ jobs:
508493
name: Deploy
509494
shell: bash
510495
run: |
511-
state run deploy-updates
512-
state run deploy-installers
513-
state run deploy-remote-installer
496+
# Deploy to staging for release branches, regular deploy for others
497+
if [[ "$GITHUB_REF" == "refs/heads/beta" || "$GITHUB_REF" == "refs/heads/release" || "$GITHUB_REF" =~ ^refs/heads/LTS ]]; then
498+
echo "Deploying to staging directory for release branch: $GITHUB_REF"
499+
DEPLOY_TO_STAGING=true state run deploy-updates
500+
DEPLOY_TO_STAGING=true state run deploy-installers
501+
DEPLOY_TO_STAGING=true state run deploy-remote-installer
502+
else
503+
echo "Deploying normally for non-release branch: $GITHUB_REF"
504+
state run deploy-updates
505+
state run deploy-installers
506+
state run deploy-remote-installer
507+
fi
514508
515509
- # === Cleanup Session Artifacts ===
516510
name: Cleanup Session Artifacts
517511
uses: geekyeggo/delete-artifact@v5
518512
with:
519513
name: |
520-
session-build-ubuntu-20.04
521-
session-build-macos-11
522-
session-build-windows-2019
514+
session-build-ubuntu-latest
515+
session-build-macos-13
516+
session-build-macos-latest
517+
session-build-windows-2025
518+
session-build-ubuntu-24.04-arm

.github/workflows/propagate.yml

Lines changed: 0 additions & 96 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ jobs:
2929

3030
- # === Install Go ===
3131
name: Install Go
32-
uses: actions/setup-go@v3
32+
uses: actions/setup-go@v5
3333
with:
34-
go-version: '1.22.x'
34+
go-version: '1.23.x'
3535

3636
- # === Install State Tool ===
3737
name: Install State Tool
@@ -48,25 +48,18 @@ jobs:
4848
shell: bash
4949
timeout-minutes: 15
5050
run: |
51-
echo $MSI_CERT_BASE64 | base64 --decode > Cert.p12
52-
export PATH=/c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/10.0.16299.0/x86/:$PATH
53-
5451
GOOS=windows state run build-remote-installer
55-
signtool.exe sign -d "ActiveState State Tool Remote Installer" -f "Cert.p12" -p ${CODE_SIGNING_PASSWD} ./build/state-remote-installer.exe
5652
state run generate-remote-install-deployment windows amd64
5753
5854
GOOS=linux state run build-remote-installer
5955
state run generate-remote-install-deployment linux amd64
6056
6157
GOOS=darwin state run build-remote-installer
6258
state run generate-remote-install-deployment darwin amd64
63-
env:
64-
CODE_SIGNING_PASSWD: ${{ secrets.CODE_SIGNING_PASSWD }}
65-
MSI_CERT_BASE64: ${{ secrets.MSI_CERT_BASE64 }}
6659
6760
- # === Configure AWS credentials ==
6861
name: Configure AWS credentials
69-
uses: aws-actions/configure-aws-credentials@v2
62+
uses: aws-actions/configure-aws-credentials@v4
7063
with:
7164
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
7265
role-session-name: ${{ env.AWS_ROLE_SESSION_NAME }}

0 commit comments

Comments
 (0)