publish release directly in build job

This commit is contained in:
2026-08-14 16:03:18 -07:00
parent 36181a2168
commit bfbfb91d52

View File

@@ -1,6 +1,5 @@
stages:
- build
- release
build:
stage: build
@@ -94,15 +93,14 @@ build:
if (-not $changed) {
Write-Host "No changes detected. Skipping build."
echo "CHANGED=false" >> build.env
exit 0
}
echo "CHANGED=true" >> build.env
# 2. Build the payload and encrypt credentials
- Write-Host "Starting secure build process..."
- node build-pipeline.js
# 3. Verify Artifacts
- |
if (Test-Path "update-payload.zip") {
Write-Host "✓ Build artifact verified: update-payload.zip exists"
@@ -128,40 +126,50 @@ build:
- Write-Host "Packaging Electron application..."
- npm run dist
- echo "BUILD_VERSION=v$env:CI_PIPELINE_IID" >> build.env
- |
Write-Host "Publishing Release to GitLab..."
$versionTag = "v$env:CI_PIPELINE_IID"
$releaseBody = @{
name = "Vyla Home Release $versionTag"
tag_name = "$versionTag"
description = "Automated release for build $versionTag"
ref = "$env:CI_COMMIT_BRANCH"
assets = @{
links = @(
@{
name = "update-payload.zip"
url = "$env:CI_PROJECT_URL/-/jobs/artifacts/$env:CI_COMMIT_BRANCH/raw/update-payload.zip?job=build"
},
@{
name = "manifest.json"
url = "$env:CI_PROJECT_URL/-/jobs/artifacts/$env:CI_COMMIT_BRANCH/raw/manifest.json?job=build"
},
@{
name = "Download All Build Artifacts (including Windows Installer)"
url = "$env:CI_PROJECT_URL/-/jobs/artifacts/$env:CI_COMMIT_BRANCH/download?job=build"
}
)
}
} | ConvertTo-Json -Depth 5
$releaseHeaders = @{
"PRIVATE-TOKEN" = "$env:GITLAB_TOKEN"
"Content-Type" = "application/json"
}
try {
$createdRelease = Invoke-RestMethod -Uri "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases" -Method Post -Headers $releaseHeaders -Body $releaseBody
Write-Host "✓ Release successfully published: $($createdRelease.tag_name)"
} catch {
Write-Warning "Release creation note: $($_.Exception.Message)"
}
artifacts:
reports:
dotenv: build.env
paths:
- update-payload.zip
- manifest.json
- validation-report.json
- dist/*.exe
- dist/*.exe.blockmap
expire_in: 30 days
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
tags:
- saas-linux-small-amd64
needs:
- job: build
artifacts: true
rules:
- if: '$CHANGED == "true" && $CI_COMMIT_BRANCH == "main"'
script:
- echo "Creating GitLab Release $BUILD_VERSION"
release:
name: 'Vyla Home Release $BUILD_VERSION'
tag_name: '$BUILD_VERSION'
description: 'Automated release for build $BUILD_VERSION'
assets:
links:
- name: 'update-payload.zip'
url: '$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_BRANCH/raw/update-payload.zip?job=build'
- name: 'manifest.json'
url: '$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_BRANCH/raw/manifest.json?job=build'
- name: 'Download All Build Artifacts (including Windows Installer)'
url: '$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_BRANCH/download?job=build'
expire_in: 30 days