Skip to content

Commit

Permalink
update: release build
Browse files Browse the repository at this point in the history
  • Loading branch information
4e6 committed Feb 2, 2025
1 parent b694ccf commit 19dba26
Show file tree
Hide file tree
Showing 3 changed files with 154 additions and 63 deletions.
94 changes: 86 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,28 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Edition File
uses: actions/upload-artifact@v4
with:
name: Edition File
path: distribution/editions/*.yaml
- name: Upload fbs-schema
uses: actions/upload-artifact@v4
with:
name: fbs-schema
path: engine/language-server/src/main/schema/
- name: Archive project-manager
run: tar -cvf project-manager.tar -C dist/backend .
- name: Upload project-manager
uses: actions/upload-artifact@v4
with:
name: project-manager-linux
path: project-manager.tar
- name: Cleanup
run: rm project-manager.tar
- if: (always())
name: Clean after
run: ./run git-clean
Expand Down Expand Up @@ -293,9 +312,18 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive project-manager
run: tar -cvf project-manager.tar -C dist/backend .
- name: Upload project-manager
uses: actions/upload-artifact@v4
with:
name: project-manager-macos
path: project-manager.tar
- name: Cleanup
run: rm project-manager.tar
- if: (always())
name: Clean after
run: ./run git-clean
Expand Down Expand Up @@ -338,9 +366,18 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive project-manager
run: tar -cvf project-manager.tar -C dist/backend .
- name: Upload project-manager
uses: actions/upload-artifact@v4
with:
name: project-manager-macos
path: project-manager.tar
- name: Cleanup
run: rm project-manager.tar
- if: (always())
name: Clean after
run: ./run git-clean
Expand Down Expand Up @@ -384,9 +421,18 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive project-manager
run: tar -cvf project-manager.tar -C dist/backend .
- name: Upload project-manager
uses: actions/upload-artifact@v4
with:
name: project-manager-windows
path: project-manager.tar
- name: Cleanup
run: rm project-manager.tar
- if: (always())
name: Clean after
run: ./run git-clean
Expand Down Expand Up @@ -485,7 +531,15 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}} --sign-artifacts
- name: Download project-manager
uses: actions/download-artifact@v4
with:
name: project-manager-linux
path: dist/backend
- run: |-
tar -xvf dist/backend/project-manager.tar -C dist/backend
rm dist/backend/project-manager.tar
- run: ./run ide upload --backend-source local --sign-artifacts
env:
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_API_URL: ${{ vars.ENSO_CLOUD_API_URL }}
Expand Down Expand Up @@ -549,7 +603,15 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}} --sign-artifacts
- name: Download project-manager
uses: actions/download-artifact@v4
with:
name: project-manager-macos
path: dist/backend
- run: |-
tar -xvf dist/backend/project-manager.tar -C dist/backend
rm dist/backend/project-manager.tar
- run: ./run ide upload --backend-source local --sign-artifacts
env:
APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
Expand Down Expand Up @@ -618,7 +680,15 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}} --sign-artifacts
- name: Download project-manager
uses: actions/download-artifact@v4
with:
name: project-manager-macos
path: dist/backend
- run: |-
tar -xvf dist/backend/project-manager.tar -C dist/backend
rm dist/backend/project-manager.tar
- run: ./run ide upload --backend-source local --sign-artifacts
env:
APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
Expand Down Expand Up @@ -688,7 +758,15 @@ jobs:
run: ./run git-clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}} --sign-artifacts
- name: Download project-manager
uses: actions/download-artifact@v4
with:
name: project-manager-windows
path: dist/backend
- run: |-
tar -xvf dist/backend/project-manager.tar -C dist/backend
rm dist/backend/project-manager.tar
- run: ./run ide upload --backend-source local --sign-artifacts
env:
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_API_URL: ${{ vars.ENSO_CLOUD_API_URL }}
Expand Down
35 changes: 28 additions & 7 deletions build_tools/build/src/ci_gen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::prelude::*;

use crate::ci::input;
use crate::ci_gen::job::plain_job;
use crate::ci_gen::job::with_packaging_steps;
use crate::ci_gen::job::prepare_packaging_steps;
use crate::ci_gen::job::RunsOn;
use crate::engine::env;
use crate::version::promote::Designation;
Expand Down Expand Up @@ -440,12 +440,33 @@ pub struct UploadIde;

impl JobArchetype for UploadIde {
fn job(&self, target: Target) -> Job {
RunStepsBuilder::new(
"ide upload --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}} --sign-artifacts",
)
.cleaning(RELEASE_CLEANING_POLICY)
.customize(with_packaging_steps(target.0, job::PackagingTarget::Release))
.build_job("Build IDE", target)
RunStepsBuilder::new("ide upload --backend-source local --sign-artifacts")
.cleaning(RELEASE_CLEANING_POLICY)
.customize(move |step| {
let mut steps = vec![];

let download_project_manager = step::download_artifact("Download project-manager")
.with_custom_argument("name", format!("project-manager-{}", target.0))
.with_custom_argument("path", "dist/backend");
steps.push(download_project_manager);

let unpack_project_manager = Step {
run: Some(
"tar -xvf dist/backend/project-manager.tar -C dist/backend
rm dist/backend/project-manager.tar"
.into(),
),
..Default::default()
};
steps.push(unpack_project_manager);

let mut packaging_steps =
prepare_packaging_steps(target.0, step, job::PackagingTarget::Release);
steps.append(&mut packaging_steps);

steps
})
.build_job("Build IDE", target)
}
}

Expand Down
88 changes: 40 additions & 48 deletions build_tools/build/src/ci_gen/job.rs
Original file line number Diff line number Diff line change
Expand Up @@ -480,49 +480,51 @@ impl JobArchetype for WasmTest {
}
}

#[derive(Clone, Copy, Debug)]
pub struct BuildBackend;
fn build_backend_steps_builder(target: Target) -> RunStepsBuilder {
RunStepsBuilder::new("backend get").customize(move |step| {
let mut steps = vec![step];

if target.0 == OS::Linux {
let upload_edition_file = step::upload_artifact("Upload Edition File")
.with_custom_argument("name", paths::EDITION_FILE_ARTIFACT_NAME)
.with_custom_argument("path", "distribution/editions/*.yaml");
steps.push(upload_edition_file);

let upload_fbs_schema = step::upload_artifact("Upload fbs-schema")
.with_custom_argument("name", "fbs-schema")
.with_custom_argument("path", "engine/language-server/src/main/schema/");
steps.push(upload_fbs_schema)
}

impl JobArchetype for BuildBackend {
fn job(&self, target: Target) -> Job {
RunStepsBuilder::new("backend get")
.customize(move |step| {
let mut steps = vec![step];
let archive_project_manager = Step {
name: Some("Archive project-manager".into()),
run: Some("tar -cvf project-manager.tar -C dist/backend .".into()),
..Default::default()
};
steps.push(archive_project_manager);

if target.0 == OS::Linux {
let upload_edition_file = step::upload_artifact("Upload Edition File")
.with_custom_argument("name", paths::EDITION_FILE_ARTIFACT_NAME)
.with_custom_argument("path", "distribution/editions/*.yaml");
steps.push(upload_edition_file);

let upload_fbs_schema = step::upload_artifact("Upload fbs-schema")
.with_custom_argument("name", "fbs-schema")
.with_custom_argument("path", "engine/language-server/src/main/schema/");
steps.push(upload_fbs_schema)
}
let upload_project_manager = step::upload_artifact("Upload project-manager")
.with_custom_argument("name", format!("project-manager-{}", target.0))
.with_custom_argument("path", "project-manager.tar");
steps.push(upload_project_manager);

let archive_project_manager = Step {
name: Some("Archive project-manager".into()),
run: Some("tar -cvf project-manager.tar -C dist/backend .".into()),
..Default::default()
};
steps.push(archive_project_manager);
let cleanup = Step {
name: Some("Cleanup".into()),
run: Some("rm project-manager.tar".into()),
..Default::default()
};
steps.push(cleanup);

let upload_project_manager = step::upload_artifact("Upload project-manager")
.with_custom_argument("name", format!("project-manager-{}", target.0))
.with_custom_argument("path", "project-manager.tar");
steps.push(upload_project_manager);
steps
})
}

let cleanup = Step {
name: Some("Cleanup".into()),
run: Some("rm project-manager.tar".into()),
..Default::default()
};
steps.push(cleanup);
#[derive(Clone, Copy, Debug)]
pub struct BuildBackend;

steps
})
.build_job("Build Backend", target)
impl JobArchetype for BuildBackend {
fn job(&self, target: Target) -> Job {
build_backend_steps_builder(target).build_job("Build Backend", target)
}
}

Expand All @@ -531,7 +533,7 @@ pub struct UploadBackend;

impl JobArchetype for UploadBackend {
fn job(&self, target: Target) -> Job {
RunStepsBuilder::new("backend upload")
build_backend_steps_builder(target)
.cleaning(RELEASE_CLEANING_POLICY)
.build_job("Upload Backend", target)
}
Expand Down Expand Up @@ -652,16 +654,6 @@ pub fn prepare_packaging_steps(os: OS, step: Step, packaging_target: PackagingTa
vec![step]
}

/// Convenience for [`prepare_packaging_steps`].
///
/// This function is useful when you want to use [`prepare_packaging_steps`] as a closure.
pub fn with_packaging_steps(
os: OS,
packaging_target: PackagingTarget,
) -> impl FnOnce(Step) -> Vec<Step> {
move |step| prepare_packaging_steps(os, step, packaging_target)
}

#[derive(Clone, Copy, Debug)]
pub struct PackageIde;

Expand Down

0 comments on commit 19dba26

Please sign in to comment.