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

File tree

1,725 files changed

+229603
-225054
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,725 files changed

+229603
-225054
lines changed
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)