From bfbfb91d523e7a157224e073f510dade70c8916e Mon Sep 17 00:00:00 2001 From: alwaysmesmerizingyou Date: Fri, 14 Aug 2026 16:03:18 -0700 Subject: [PATCH] publish release directly in build job --- .gitlab-ci.yml | 74 ++++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3dea1b..cc8e34b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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' \ No newline at end of file + expire_in: 30 days \ No newline at end of file