From 4680c7d0040a7f99d8bf56eec4c0ca0ab55a481f Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 17:00:41 +0000 Subject: [PATCH 01/41] update: CI PR workflows --- .github/workflows/gui-pull-request.yml | 113 ++++++++++++++++++++++--- .github/workflows/gui-tests.yml | 6 +- .github/workflows/gui.yml | 4 - .github/workflows/scala-new.yml | 4 - build/build/src/ci_gen.rs | 16 ++-- 5 files changed, 108 insertions(+), 35 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 650f001d2279..189b571e600f 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ GUI Pull Request +name: โœจ Pull Request on: push: @@ -20,19 +20,19 @@ permissions: checks: write jobs: - changed-files: + gui-changed-files: runs-on: ubuntu-latest name: ๐Ÿ” GUI files changed outputs: - all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }} - any_changed: ${{ steps.changed-files.outputs.any_changed }} + all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} steps: - uses: actions/checkout@v4 with: fetch-depth: 2 - name: Get changed files - id: changed-files - uses: tj-actions/changed-files@v44 + id: gui-changed-files + uses: tj-actions/changed-files@v45 with: files: | app/** @@ -49,27 +49,114 @@ jobs: app/gui/scripts/** app/gui/.gitignore .git-* + - name: List all changed files + env: + ALL_CHANGED_FILES: ${{ steps.gui-changed-files.outputs.all_changed_files }} + run: | + for file in ${ALL_CHANGED_FILES}; do + echo "$file was changed" + done + wasm-changed-files: + runs-on: ubuntu-latest + name: ๐Ÿ” WASM files changed + outputs: + all_changed_files: ${{ steps.wasm-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.wasm-changed-files.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: wasm-changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + .cargo/** + app/rust-ffi/**, + build/**, + lib/rust/**", + tools/language-server/logstat/**", + tools/language-server/wstest/**", + Cargo.lock, + Cargo.toml, + rust-toolchain.toml, + rustfmt.toml - name: List all changed files env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} run: | for file in ${ALL_CHANGED_FILES}; do echo "$file was changed" done - checks: - name: ๐Ÿงฐ Checks + engine-changed-files: + runs-on: ubuntu-latest + name: ๐Ÿ” Engine files changed + outputs: + all_changed_files: ${{ steps.engine-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.engine-changed-files.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: engine-changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + distribution/** + engine/** + lib/** + project/** + std-bits/** + test/** + build.sbt + .cargo/** + Cargo.lock, + Cargo.toml, + rust-toolchain.toml, + - name: List all changed files + env: + ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} + run: | + for file in ${ALL_CHANGED_FILES}; do + echo "$file was changed" + done + + gui-checks: + name: ๐Ÿงฐ GUI Checks uses: ./.github/workflows/gui-checks.yml - needs: [changed-files] - if: ${{ needs.changed-files.outputs.any_changed == 'true' }} + needs: [gui-changed-files] + if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' }} + secrets: inherit + + wasm-checks: + name: ๐Ÿงฐ WASM Checks + uses: ./.github/workflows/gui-tests.yml + needs: [wasm-changed-files] + if: ${{ needs.wasm-changed-files.outputs.any_changed == 'true' }} + secrets: inherit + + engine-checks: + name: ๐Ÿงฐ Engine Checks + uses: ./.github/workflows/scala-new.yml + needs: [engine-changed-files] + if: ${{ needs.engine-changed-files.outputs.any_changed == 'true' }} + secrets: inherit + + gui-packaging: + name: ๐Ÿงฐ GUI Packaging + uses: ./.github/workflows/gui.yml + needs: [gui-changed-files, wasm-changed-files, engine-changed-files] + if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' || needs.wasm-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' }} secrets: inherit storybook: name: ๐Ÿ“š Deploy Storybook uses: ./.github/workflows/storybook.yml - needs: [changed-files] - if: ${{ needs.changed-files.outputs.any_changed == 'true' }} + needs: [gui-changed-files] + if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' }} secrets: inherit # This job is used to report success if the needed jobs were successful. diff --git a/.github/workflows/gui-tests.yml b/.github/workflows/gui-tests.yml index 4abe8f1d23f3..0f684004dc17 100644 --- a/.github/workflows/gui-tests.yml +++ b/.github/workflows/gui-tests.yml @@ -1,12 +1,8 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: GUI Check +name: WASM Checks on: - push: - branches: - - develop - pull_request: {} workflow_dispatch: inputs: clean_build_required: diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index d31f76450119..70260ac90034 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -3,10 +3,6 @@ name: GUI Packaging on: - push: - branches: - - develop - pull_request: {} workflow_dispatch: inputs: clean_build_required: diff --git a/.github/workflows/scala-new.yml b/.github/workflows/scala-new.yml index 0615bdee35f0..1cb55c8ad0fe 100644 --- a/.github/workflows/scala-new.yml +++ b/.github/workflows/scala-new.yml @@ -3,10 +3,6 @@ name: Engine CI on: - push: - branches: - - develop - pull_request: {} workflow_dispatch: inputs: clean_build_required: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index 91c407eaf7c9..fc78707b9ed5 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -651,10 +651,11 @@ pub fn typical_check_triggers() -> Event { } pub fn gui() -> Result { + let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; let mut workflow = Workflow { name: "GUI Packaging".into(), - on: typical_check_triggers(), concurrency: Some(concurrency()), + on, ..default() }; @@ -669,8 +670,8 @@ pub fn gui() -> Result { } pub fn gui_tests() -> Result { - let on = typical_check_triggers(); - let mut workflow = Workflow { name: "GUI Check".into(), on, ..default() }; + let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; + let mut workflow = Workflow { name: "WASM Checks".into(), on, ..default() }; workflow.add(PRIMARY_TARGET, job::CancelWorkflow); workflow.add(PRIMARY_TARGET, job::Lint); workflow.add(PRIMARY_TARGET, job::WasmTest); @@ -688,12 +689,9 @@ fn concurrency() -> Concurrency { } pub fn backend() -> Result { - let mut workflow = Workflow { - name: "Engine CI".into(), - on: typical_check_triggers(), - concurrency: Some(concurrency()), - ..default() - }; + let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; + let mut workflow = + Workflow { name: "Engine CI".into(), concurrency: Some(concurrency()), on, ..default() }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); for target in PR_CHECKED_TARGETS { add_backend_checks(&mut workflow, target, graalvm::Edition::Community); From 234b87bcb05f14009f85752be098cd4dc1acb901 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 17:42:27 +0000 Subject: [PATCH 02/41] fix: workflow call --- .github/workflows/gui-tests.yml | 1 + .github/workflows/gui.yml | 1 + .github/workflows/scala-new.yml | 1 + build/build/src/ci_gen.rs | 18 +++++++++++++++--- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gui-tests.yml b/.github/workflows/gui-tests.yml index 0f684004dc17..cacfdd0594bc 100644 --- a/.github/workflows/gui-tests.yml +++ b/.github/workflows/gui-tests.yml @@ -10,6 +10,7 @@ on: required: false type: boolean default: false + workflow_call: {} jobs: enso-build-ci-gen-job-cancel-workflow-linux-amd64: name: Cancel Previous Runs diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index 70260ac90034..49ed54f36b41 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -10,6 +10,7 @@ on: required: false type: boolean default: false + workflow_call: {} concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} diff --git a/.github/workflows/scala-new.yml b/.github/workflows/scala-new.yml index 1cb55c8ad0fe..59d49bb26b0b 100644 --- a/.github/workflows/scala-new.yml +++ b/.github/workflows/scala-new.yml @@ -10,6 +10,7 @@ on: required: false type: boolean default: false + workflow_call: {} concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index fc78707b9ed5..ed2232b40b36 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -651,7 +651,11 @@ pub fn typical_check_triggers() -> Event { } pub fn gui() -> Result { - let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; + let on = Event { + workflow_dispatch: Some(manual_workflow_dispatch()), + workflow_call: Some(default()), + ..default() + }; let mut workflow = Workflow { name: "GUI Packaging".into(), concurrency: Some(concurrency()), @@ -670,7 +674,11 @@ pub fn gui() -> Result { } pub fn gui_tests() -> Result { - let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; + let on = Event { + workflow_dispatch: Some(manual_workflow_dispatch()), + workflow_call: Some(default()), + ..default() + }; let mut workflow = Workflow { name: "WASM Checks".into(), on, ..default() }; workflow.add(PRIMARY_TARGET, job::CancelWorkflow); workflow.add(PRIMARY_TARGET, job::Lint); @@ -689,7 +697,11 @@ fn concurrency() -> Concurrency { } pub fn backend() -> Result { - let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), ..default() }; + let on = Event { + workflow_dispatch: Some(manual_workflow_dispatch()), + workflow_call: Some(default()), + ..default() + }; let mut workflow = Workflow { name: "Engine CI".into(), concurrency: Some(concurrency()), on, ..default() }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); From 6c28719aed168c0108eacf7870fe7c44d320c791 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 17:46:00 +0000 Subject: [PATCH 03/41] fix: report-success --- .github/workflows/gui-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 189b571e600f..b43a55cf3bb9 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -164,7 +164,7 @@ jobs: report-success: name: GUI Checks Success or Skipped runs-on: ubuntu-latest - needs: [checks, storybook] + needs: [gui-checks, storybook] if: always() steps: - name: Report success From 2ab036decd13728f44aa609dc8e079c12509f15a Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 17:51:25 +0000 Subject: [PATCH 04/41] fix: wasm check permissions --- .github/workflows/gui-pull-request.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index b43a55cf3bb9..9db3dbcf3d99 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -137,6 +137,8 @@ jobs: needs: [wasm-changed-files] if: ${{ needs.wasm-changed-files.outputs.any_changed == 'true' }} secrets: inherit + permissions: + actions: write engine-checks: name: ๐Ÿงฐ Engine Checks From ae6a57d83d6241c529193103802e3283425572a3 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 18:06:14 +0000 Subject: [PATCH 05/41] fix: concurrency settings --- .github/workflows/gui-pull-request.yml | 2 -- .github/workflows/gui-tests.yml | 12 ------------ .github/workflows/gui.yml | 3 --- .github/workflows/scala-new.yml | 3 --- build/build/src/ci_gen.rs | 20 ++------------------ 5 files changed, 2 insertions(+), 38 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 9db3dbcf3d99..b43a55cf3bb9 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -137,8 +137,6 @@ jobs: needs: [wasm-changed-files] if: ${{ needs.wasm-changed-files.outputs.any_changed == 'true' }} secrets: inherit - permissions: - actions: write engine-checks: name: ๐Ÿงฐ Engine Checks diff --git a/.github/workflows/gui-tests.yml b/.github/workflows/gui-tests.yml index cacfdd0594bc..bda1f8b79d3e 100644 --- a/.github/workflows/gui-tests.yml +++ b/.github/workflows/gui-tests.yml @@ -12,18 +12,6 @@ on: default: false workflow_call: {} jobs: - enso-build-ci-gen-job-cancel-workflow-linux-amd64: - name: Cancel Previous Runs - if: github.ref != 'refs/heads/develop' - runs-on: - - ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - permissions: - actions: write enso-build-ci-gen-job-lint-linux-amd64: name: Lint (linux, amd64) runs-on: diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index 49ed54f36b41..abfdf690015d 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -11,9 +11,6 @@ on: type: boolean default: false workflow_call: {} -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: enso-build-ci-gen-job-build-backend-linux-amd64: name: Build Backend (linux, amd64) diff --git a/.github/workflows/scala-new.yml b/.github/workflows/scala-new.yml index 59d49bb26b0b..22ac278830bc 100644 --- a/.github/workflows/scala-new.yml +++ b/.github/workflows/scala-new.yml @@ -11,9 +11,6 @@ on: type: boolean default: false workflow_call: {} -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: enso-build-ci-gen-job-ci-check-backend-graal-vm-ce-linux-amd64: name: Engine (GraalVM CE) (linux, amd64) diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index ed2232b40b36..c528d382568d 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -656,12 +656,7 @@ pub fn gui() -> Result { workflow_call: Some(default()), ..default() }; - let mut workflow = Workflow { - name: "GUI Packaging".into(), - concurrency: Some(concurrency()), - on, - ..default() - }; + let mut workflow = Workflow { name: "GUI Packaging".into(), on, ..default() }; for target in PR_CHECKED_TARGETS { let project_manager_job = workflow.add(target, job::BuildBackend); @@ -680,30 +675,19 @@ pub fn gui_tests() -> Result { ..default() }; let mut workflow = Workflow { name: "WASM Checks".into(), on, ..default() }; - workflow.add(PRIMARY_TARGET, job::CancelWorkflow); workflow.add(PRIMARY_TARGET, job::Lint); workflow.add(PRIMARY_TARGET, job::WasmTest); workflow.add(PRIMARY_TARGET, job::NativeTest); Ok(workflow) } -fn concurrency() -> Concurrency { - let github_workflow = wrap_expression("github.workflow"); - let github_ref = wrap_expression("github.ref"); - Concurrency::Map { - group: format!("{github_workflow}-{github_ref}"), - cancel_in_progress: wrap_expression(not_default_branch()), - } -} - pub fn backend() -> Result { let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), workflow_call: Some(default()), ..default() }; - let mut workflow = - Workflow { name: "Engine CI".into(), concurrency: Some(concurrency()), on, ..default() }; + let mut workflow = Workflow { name: "Engine CI".into(), on, ..default() }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); for target in PR_CHECKED_TARGETS { add_backend_checks(&mut workflow, target, graalvm::Edition::Community); From a782375814e1ee4c930ab634e9ef83255cc72f13 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 18:18:11 +0000 Subject: [PATCH 06/41] update: final report --- .github/workflows/gui-pull-request.yml | 58 +++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index b43a55cf3bb9..b13ce9016bf8 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -161,18 +161,66 @@ jobs: # This job is used to report success if the needed jobs were successful. # This is a workaround to make optional jobs required if they run - report-success: - name: GUI Checks Success or Skipped + gui-report: + name: GUI Checks Report runs-on: ubuntu-latest needs: [gui-checks, storybook] if: always() steps: - - name: Report success + - name: GUI Report run: | - echo "Checks: ${{ needs.checks.result }}" + echo "Checks: ${{ needs.gui-checks.result }}" echo "Storybook: ${{ needs.storybook.result }}" - if [[ "${{ needs.checks.result }}" == "failure" || "${{ needs.storybook.result }}" == "failure" ]]; then + if [[ "${{ needs.gui-checks.result }}" == "failure" || "${{ needs.storybook.result }}" == "failure" ]]; then + exit 1 + fi + + echo "Success!" + + wasm-report: + name: WASM Checks Report + runs-on: ubuntu-latest + needs: [wasm-checks] + if: always() + steps: + - name: WASM Report + run: | + echo "Checks: ${{ needs.wasm-checks.result }}" + + if [[ "${{ needs.wasm-checks.result }}" == "failure" ]]; then + exit 1 + fi + + echo "Success!" + + engine-report: + name: Engine Checks Report + runs-on: ubuntu-latest + needs: [engine-checks] + if: always() + steps: + - name: Engine Report + run: | + echo "Checks: ${{ needs.engine-checks.result }}" + + if [[ "${{ needs.engine-checks.result }}" == "failure" ]]; then + exit 1 + fi + + echo "Success!" + + gui-packaging-report: + name: GUI Packaging Report + runs-on: ubuntu-latest + needs: [gui-packaging] + if: always() + steps: + - name: GUI Packaging Report + run: | + echo "Checks: ${{ needs.gui-packaging.result }}" + + if [[ "${{ needs.gui-packaging.result }}" == "failure" ]]; then exit 1 fi From 7f3d4d1c938379c8fdcd811c3f91326d9a8e2198 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 20:21:05 +0000 Subject: [PATCH 07/41] update: single checks report --- .github/workflows/gui-checks.yml | 2 + .github/workflows/gui-pull-request.yml | 80 ++++++++------------------ 2 files changed, 25 insertions(+), 57 deletions(-) diff --git a/.github/workflows/gui-checks.yml b/.github/workflows/gui-checks.yml index 5d1091df8457..51ceb233fb8f 100644 --- a/.github/workflows/gui-checks.yml +++ b/.github/workflows/gui-checks.yml @@ -1,3 +1,5 @@ +# This file is not auto-generated. Feel free to edit it. + name: GUI Checks on: workflow_call diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index b13ce9016bf8..299adfa3d388 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -161,67 +161,33 @@ jobs: # This job is used to report success if the needed jobs were successful. # This is a workaround to make optional jobs required if they run - gui-report: - name: GUI Checks Report + checks-report: + name: Checks Report runs-on: ubuntu-latest - needs: [gui-checks, storybook] + needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] if: always() steps: - - name: GUI Report + - name: Combined Checks Report run: | - echo "Checks: ${{ needs.gui-checks.result }}" + echo "GUI Checks: ${{ needs.gui-checks.result }}" echo "Storybook: ${{ needs.storybook.result }}" - - if [[ "${{ needs.gui-checks.result }}" == "failure" || "${{ needs.storybook.result }}" == "failure" ]]; then - exit 1 - fi - - echo "Success!" - - wasm-report: - name: WASM Checks Report - runs-on: ubuntu-latest - needs: [wasm-checks] - if: always() - steps: - - name: WASM Report - run: | - echo "Checks: ${{ needs.wasm-checks.result }}" - - if [[ "${{ needs.wasm-checks.result }}" == "failure" ]]; then - exit 1 - fi - - echo "Success!" - - engine-report: - name: Engine Checks Report - runs-on: ubuntu-latest - needs: [engine-checks] - if: always() - steps: - - name: Engine Report - run: | - echo "Checks: ${{ needs.engine-checks.result }}" - - if [[ "${{ needs.engine-checks.result }}" == "failure" ]]; then - exit 1 - fi - - echo "Success!" - - gui-packaging-report: - name: GUI Packaging Report - runs-on: ubuntu-latest - needs: [gui-packaging] - if: always() - steps: - - name: GUI Packaging Report - run: | - echo "Checks: ${{ needs.gui-packaging.result }}" - - if [[ "${{ needs.gui-packaging.result }}" == "failure" ]]; then - exit 1 - fi + echo "WASM Checks: ${{ needs.wasm-checks.result }}" + echo "Engine Checks: ${{ needs.engine-checks.result }}" + echo "GUI Packaging: ${{ needs.gui-packaging.result }}" + + declare -a checks + checks+=("${{ needs.gui-checks.result }}") + checks+=("${{ needs.storybook.result }}") + checks+=("${{ needs.wasm-checks.result }}") + checks+=("${{ needs.engine-checks.result }}") + checks+=("${{ needs.gui-packaging.result }}") + + for result in "${checks[@]}" + do + if [[ "$result" == "failure" ]] + then + exit 1 + fi + done echo "Success!" From 4a1d023b00af464ab15fe99a5e32f4f4ccaecc61 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 29 Nov 2024 20:38:06 +0000 Subject: [PATCH 08/41] misc: cleanup --- .github/workflows/gui-pull-request.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 299adfa3d388..72d206e2d1f8 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -128,35 +128,35 @@ jobs: name: ๐Ÿงฐ GUI Checks uses: ./.github/workflows/gui-checks.yml needs: [gui-changed-files] - if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' }} + if: needs.gui-changed-files.outputs.any_changed == 'true' + secrets: inherit + + storybook: + name: ๐Ÿ“š Deploy Storybook + uses: ./.github/workflows/storybook.yml + needs: [gui-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true' secrets: inherit wasm-checks: name: ๐Ÿงฐ WASM Checks uses: ./.github/workflows/gui-tests.yml needs: [wasm-changed-files] - if: ${{ needs.wasm-changed-files.outputs.any_changed == 'true' }} + if: needs.wasm-changed-files.outputs.any_changed == 'true' secrets: inherit engine-checks: name: ๐Ÿงฐ Engine Checks uses: ./.github/workflows/scala-new.yml needs: [engine-changed-files] - if: ${{ needs.engine-changed-files.outputs.any_changed == 'true' }} + if: needs.engine-changed-files.outputs.any_changed == 'true' secrets: inherit gui-packaging: name: ๐Ÿงฐ GUI Packaging uses: ./.github/workflows/gui.yml needs: [gui-changed-files, wasm-changed-files, engine-changed-files] - if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' || needs.wasm-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' }} - secrets: inherit - - storybook: - name: ๐Ÿ“š Deploy Storybook - uses: ./.github/workflows/storybook.yml - needs: [gui-changed-files] - if: ${{ needs.gui-changed-files.outputs.any_changed == 'true' }} + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.wasm-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' secrets: inherit # This job is used to report success if the needed jobs were successful. From aa3d4f5573ab2a1fc4c41596cd72a817d7537389 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Sun, 1 Dec 2024 13:56:12 +0000 Subject: [PATCH 09/41] misc: wasm dependency --- .github/workflows/gui-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 72d206e2d1f8..2878e03da11a 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -155,8 +155,8 @@ jobs: gui-packaging: name: ๐Ÿงฐ GUI Packaging uses: ./.github/workflows/gui.yml - needs: [gui-changed-files, wasm-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.wasm-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' + needs: [gui-changed-files, engine-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' secrets: inherit # This job is used to report success if the needed jobs were successful. From b8d6164fcff6d5b51f728d568a99ae9aa1cec727 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 13:33:30 +0000 Subject: [PATCH 10/41] update: print files changed --- .github/workflows/gui-pull-request.yml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 2878e03da11a..d1d1e2823531 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -53,8 +53,11 @@ jobs: env: ALL_CHANGED_FILES: ${{ steps.gui-changed-files.outputs.all_changed_files }} run: | + if [[ "${{ steps.gui-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi for file in ${ALL_CHANGED_FILES}; do - echo "$file was changed" + echo "$file" done wasm-changed-files: @@ -86,8 +89,11 @@ jobs: env: ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} run: | + if [[ "${{ steps.wasm-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi for file in ${ALL_CHANGED_FILES}; do - echo "$file was changed" + echo "$file" done engine-changed-files: @@ -120,8 +126,11 @@ jobs: env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} run: | + if [[ "${{ steps.engine-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi for file in ${ALL_CHANGED_FILES}; do - echo "$file was changed" + echo "$file" done gui-checks: @@ -182,10 +191,8 @@ jobs: checks+=("${{ needs.engine-checks.result }}") checks+=("${{ needs.gui-packaging.result }}") - for result in "${checks[@]}" - do - if [[ "$result" == "failure" ]] - then + for result in "${checks[@]}"; do + if [[ "$result" == "failure" ]]; then exit 1 fi done From 2391ddefe134536b7bb9200b682e44a1a60dee78 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 13:41:45 +0000 Subject: [PATCH 11/41] update: always run on develop --- .github/workflows/gui-pull-request.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index d1d1e2823531..196aec8e7d40 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -137,35 +137,35 @@ jobs: name: ๐Ÿงฐ GUI Checks uses: ./.github/workflows/gui-checks.yml needs: [gui-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' + if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit storybook: name: ๐Ÿ“š Deploy Storybook uses: ./.github/workflows/storybook.yml needs: [gui-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' + if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit wasm-checks: name: ๐Ÿงฐ WASM Checks uses: ./.github/workflows/gui-tests.yml needs: [wasm-changed-files] - if: needs.wasm-changed-files.outputs.any_changed == 'true' + if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks: name: ๐Ÿงฐ Engine Checks uses: ./.github/workflows/scala-new.yml needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true' + if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging: name: ๐Ÿงฐ GUI Packaging uses: ./.github/workflows/gui.yml needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit # This job is used to report success if the needed jobs were successful. From 8f0c76a1ebaaff281009dba1000addf8a76a341d Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 13:51:22 +0000 Subject: [PATCH 12/41] update: concurrency --- .github/workflows/gui-tests.yml | 3 +++ .github/workflows/gui.yml | 3 +++ .github/workflows/scala-new.yml | 5 ++++- build/build/src/ci_gen.rs | 31 ++++++++++++++++++++++++++++--- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gui-tests.yml b/.github/workflows/gui-tests.yml index bda1f8b79d3e..246f8bb97305 100644 --- a/.github/workflows/gui-tests.yml +++ b/.github/workflows/gui-tests.yml @@ -11,6 +11,9 @@ on: type: boolean default: false workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-wasm-checks + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: enso-build-ci-gen-job-lint-linux-amd64: name: Lint (linux, amd64) diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index abfdf690015d..559b59ad2619 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -11,6 +11,9 @@ on: type: boolean default: false workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-gui-packaging + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: enso-build-ci-gen-job-build-backend-linux-amd64: name: Build Backend (linux, amd64) diff --git a/.github/workflows/scala-new.yml b/.github/workflows/scala-new.yml index 22ac278830bc..cb8afe657228 100644 --- a/.github/workflows/scala-new.yml +++ b/.github/workflows/scala-new.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: Engine CI +name: Engine Checks on: workflow_dispatch: inputs: @@ -11,6 +11,9 @@ on: type: boolean default: false workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-engine-checks + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} jobs: enso-build-ci-gen-job-ci-check-backend-graal-vm-ce-linux-amd64: name: Engine (GraalVM CE) (linux, amd64) diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index c528d382568d..e1d4addfb6e7 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -475,6 +475,16 @@ impl PromoteReleaseJob { pub const PROMOTE_STEP_ID: &'static str = "promote"; } +fn concurrency(group: impl AsRef) -> Concurrency { + let github_workflow = wrap_expression("github.workflow"); + let github_ref = wrap_expression("github.ref"); + let group_ref = group.as_ref(); + Concurrency::Map { + group: format!("{github_workflow}-{github_ref}-{group_ref}"), + cancel_in_progress: wrap_expression(not_default_branch()), + } +} + /// Generate a workflow that checks if the changelog has been updated (if needed). pub fn changelog() -> Result { use PullRequestActivityType::*; @@ -656,7 +666,12 @@ pub fn gui() -> Result { workflow_call: Some(default()), ..default() }; - let mut workflow = Workflow { name: "GUI Packaging".into(), on, ..default() }; + let mut workflow = Workflow { + name: "GUI Packaging".into(), + concurrency: Some(concurrency("gui-packaging")), + on, + ..default() + }; for target in PR_CHECKED_TARGETS { let project_manager_job = workflow.add(target, job::BuildBackend); @@ -674,7 +689,12 @@ pub fn gui_tests() -> Result { workflow_call: Some(default()), ..default() }; - let mut workflow = Workflow { name: "WASM Checks".into(), on, ..default() }; + let mut workflow = Workflow { + name: "WASM Checks".into(), + concurrency: Some(concurrency("wasm-checks")), + on, + ..default() + }; workflow.add(PRIMARY_TARGET, job::Lint); workflow.add(PRIMARY_TARGET, job::WasmTest); workflow.add(PRIMARY_TARGET, job::NativeTest); @@ -687,7 +707,12 @@ pub fn backend() -> Result { workflow_call: Some(default()), ..default() }; - let mut workflow = Workflow { name: "Engine CI".into(), on, ..default() }; + let mut workflow = Workflow { + name: "Engine Checks".into(), + concurrency: Some(concurrency("engine-checks")), + on, + ..default() + }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); for target in PR_CHECKED_TARGETS { add_backend_checks(&mut workflow, target, graalvm::Edition::Community); From b026e2c462c4e94592e4135e07ad5d2fba24e431 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 13:57:09 +0000 Subject: [PATCH 13/41] update: changed files --- .github/workflows/gui-pull-request.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 196aec8e7d40..672b4979a398 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -76,14 +76,14 @@ jobs: with: files: | .cargo/** - app/rust-ffi/**, - build/**, - lib/rust/**", - tools/language-server/logstat/**", - tools/language-server/wstest/**", - Cargo.lock, - Cargo.toml, - rust-toolchain.toml, + app/rust-ffi/** + build/** + lib/rust/** + tools/language-server/logstat/** + tools/language-server/wstest/** + Cargo.lock + Cargo.toml + rust-toolchain.toml rustfmt.toml - name: List all changed files env: @@ -119,9 +119,10 @@ jobs: test/** build.sbt .cargo/** - Cargo.lock, - Cargo.toml, - rust-toolchain.toml, + Cargo.lock + Cargo.toml + rust-toolchain.toml + .github/workflows/scala-new.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} From deb8ca0e6d66f5fd2f675dcb62075d904a5abde2 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 14:57:00 +0000 Subject: [PATCH 14/41] update: macos continue on error --- .github/workflows/scala-new.yml | 3 ++ build/build/src/ci_gen.rs | 36 ++++++++++++++++--- .../src/actions/workflow/definition.rs | 30 ++++++++-------- 3 files changed, 51 insertions(+), 18 deletions(-) diff --git a/.github/workflows/scala-new.yml b/.github/workflows/scala-new.yml index cb8afe657228..f4b76b2e8cc4 100644 --- a/.github/workflows/scala-new.yml +++ b/.github/workflows/scala-new.yml @@ -64,6 +64,7 @@ jobs: name: Engine (GraalVM CE) (macos, amd64) runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack @@ -209,6 +210,7 @@ jobs: name: JVM Tests (GraalVM CE) (macos, amd64) runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack @@ -379,6 +381,7 @@ jobs: name: Standard Library Tests (GraalVM CE) (macos, amd64) runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index e1d4addfb6e7..994fe50f33c8 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -564,15 +564,35 @@ fn add_release_steps(workflow: &mut Workflow) -> Result { Ok(()) } +/// Add jobs that perform backend checks ,including Scala and Standard Library tests. +pub fn add_backend_checks_customized( + workflow: &mut Workflow, + target: Target, + graal_edition: graalvm::Edition, + continue_on_error: impl Fn(&Target) -> Option, +) { + workflow.add_customized(target, job::CiCheckBackend { graal_edition }, |job| { + job.continue_on_error = continue_on_error(&target); + }); + workflow.add_customized(target, job::JvmTests { graal_edition }, |job| { + job.continue_on_error = continue_on_error(&target); + }); + workflow.add_customized( + target, + job::StandardLibraryTests { graal_edition, cloud_tests_enabled: false }, + |job| { + job.continue_on_error = continue_on_error(&target); + }, + ); +} + /// Add jobs that perform backend checks ,including Scala and Standard Library tests. pub fn add_backend_checks( workflow: &mut Workflow, target: Target, graal_edition: graalvm::Edition, ) { - workflow.add(target, job::CiCheckBackend { graal_edition }); - workflow.add(target, job::JvmTests { graal_edition }); - workflow.add(target, job::StandardLibraryTests { graal_edition, cloud_tests_enabled: false }); + add_backend_checks_customized(workflow, target, graal_edition, |_| None); } pub fn workflow_call_job(name: impl Into, path: impl Into) -> Job { @@ -715,7 +735,15 @@ pub fn backend() -> Result { }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); for target in PR_CHECKED_TARGETS { - add_backend_checks(&mut workflow, target, graalvm::Edition::Community); + add_backend_checks_customized( + &mut workflow, + target, + graalvm::Edition::Community, + |target| match target { + (OS::MacOS, Arch::X86_64) => Some(true), + _ => None, + }, + ); } Ok(workflow) } diff --git a/build/ci_utils/src/actions/workflow/definition.rs b/build/ci_utils/src/actions/workflow/definition.rs index 0c3410c8ce8a..4dec2a1164de 100644 --- a/build/ci_utils/src/actions/workflow/definition.rs +++ b/build/ci_utils/src/actions/workflow/definition.rs @@ -668,33 +668,35 @@ pub enum JobSecrets { #[derive(Clone, Debug, Default, Serialize, Deserialize)] #[serde(rename_all = "kebab-case")] pub struct Job { - pub name: String, + pub name: String, #[serde(skip_serializing_if = "BTreeSet::is_empty")] - pub needs: BTreeSet, + pub needs: BTreeSet, #[serde(skip_serializing_if = "Option::is_none")] - pub r#if: Option, + pub r#if: Option, #[serde(skip_serializing_if = "Vec::is_empty")] - pub runs_on: Vec, + pub runs_on: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + pub continue_on_error: Option, #[serde(skip_serializing_if = "Vec::is_empty")] - pub steps: Vec, + pub steps: Vec, #[serde(skip_serializing_if = "Option::is_none")] - pub concurrency: Option, + pub concurrency: Option, #[serde(skip_serializing_if = "BTreeMap::is_empty")] - pub outputs: BTreeMap, + pub outputs: BTreeMap, #[serde(skip_serializing_if = "BTreeMap::is_empty")] - pub env: BTreeMap, + pub env: BTreeMap, #[serde(skip_serializing_if = "Option::is_none")] - pub strategy: Option, + pub strategy: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub timeout_minutes: Option, + pub timeout_minutes: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub uses: Option, + pub uses: Option, #[serde(skip_serializing_if = "BTreeMap::is_empty")] - pub with: BTreeMap, + pub with: BTreeMap, #[serde(skip_serializing_if = "Option::is_none")] - pub secrets: Option, + pub secrets: Option, #[serde(skip_serializing_if = "BTreeMap::is_empty")] - pub permissions: BTreeMap, + pub permissions: BTreeMap, } impl Job { From db1e3581caf13a86545a932fa0aa32c454ad458a Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 15:50:01 +0000 Subject: [PATCH 15/41] DEBUG: continue-on-error --- .github/workflows/gui-pull-request.yml | 17 ++++++++++++++- .github/workflows/test.yml | 30 ++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 672b4979a398..6d4093ddc845 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -169,12 +169,25 @@ jobs: if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit + test-continue-on-error: + name: Test continue-on-error + uses: ./.github/workflows/test.yml + secrets: inherit + # This job is used to report success if the needed jobs were successful. # This is a workaround to make optional jobs required if they run checks-report: name: Checks Report runs-on: ubuntu-latest - needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] + needs: + [ + gui-checks, + storybook, + wasm-checks, + engine-checks, + gui-packaging, + test-continue-on-error, + ] if: always() steps: - name: Combined Checks Report @@ -184,6 +197,7 @@ jobs: echo "WASM Checks: ${{ needs.wasm-checks.result }}" echo "Engine Checks: ${{ needs.engine-checks.result }}" echo "GUI Packaging: ${{ needs.gui-packaging.result }}" + echo "Test: ${{ needs.test-continue-on-error.result }}" declare -a checks checks+=("${{ needs.gui-checks.result }}") @@ -191,6 +205,7 @@ jobs: checks+=("${{ needs.wasm-checks.result }}") checks+=("${{ needs.engine-checks.result }}") checks+=("${{ needs.gui-packaging.result }}") + checks+=("${{ needs.test-continue-on-error.result }}") for result in "${checks[@]}"; do if [[ "$result" == "failure" ]]; then diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000000..8937948431fd --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,30 @@ +## Test continue-on-error behavior + +name: Test continue-on-error +on: + workflow_dispatch: + inputs: + clean_build_required: + description: Clean before and after the run. + required: false + type: boolean + default: false + workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-test-continue-on-error + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} +jobs: + test-continue-on-error-behavior: + name: Test continue-on-error + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Clean before + run: | + echo "Oops..." + exit 1 From cf20381527fe712bb89bb7826d89969fe0779906 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 15:53:50 +0000 Subject: [PATCH 16/41] DEBUG: speedup continue-on-error --- .github/workflows/gui-pull-request.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 6d4093ddc845..987fcd4a57c5 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -43,7 +43,6 @@ jobs: .prettierrc.js .prettierignore vitest.workspace.ts - .github/workflows/gui* files_ignore: | app/ide-desktop/** app/gui/scripts/** @@ -122,7 +121,6 @@ jobs: Cargo.lock Cargo.toml rust-toolchain.toml - .github/workflows/scala-new.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} From 8c5819cda289a4faddff44e87079313408d01065 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:00:13 +0000 Subject: [PATCH 17/41] DEBUG: continue-on-error 1 --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8937948431fd..82f291816501 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,6 @@ jobs: test-continue-on-error-behavior: name: Test continue-on-error runs-on: ubuntu-latest - continue-on-error: true steps: - name: Checking out the repository uses: actions/checkout@v4 From c627fa6b4e1111082e91cd559610aec95f2d470c Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:06:49 +0000 Subject: [PATCH 18/41] DEBUG: revert continue-on-error --- .github/workflows/gui-pull-request.yml | 14 +++---------- .github/workflows/test.yml | 29 -------------------------- 2 files changed, 3 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 987fcd4a57c5..d3e1c65ce27d 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -43,6 +43,7 @@ jobs: .prettierrc.js .prettierignore vitest.workspace.ts + .github/workflows/gui* files_ignore: | app/ide-desktop/** app/gui/scripts/** @@ -121,6 +122,7 @@ jobs: Cargo.lock Cargo.toml rust-toolchain.toml + .github/workflows/scala-new.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} @@ -177,15 +179,7 @@ jobs: checks-report: name: Checks Report runs-on: ubuntu-latest - needs: - [ - gui-checks, - storybook, - wasm-checks, - engine-checks, - gui-packaging, - test-continue-on-error, - ] + needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] if: always() steps: - name: Combined Checks Report @@ -195,7 +189,6 @@ jobs: echo "WASM Checks: ${{ needs.wasm-checks.result }}" echo "Engine Checks: ${{ needs.engine-checks.result }}" echo "GUI Packaging: ${{ needs.gui-packaging.result }}" - echo "Test: ${{ needs.test-continue-on-error.result }}" declare -a checks checks+=("${{ needs.gui-checks.result }}") @@ -203,7 +196,6 @@ jobs: checks+=("${{ needs.wasm-checks.result }}") checks+=("${{ needs.engine-checks.result }}") checks+=("${{ needs.gui-packaging.result }}") - checks+=("${{ needs.test-continue-on-error.result }}") for result in "${checks[@]}"; do if [[ "$result" == "failure" ]]; then diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 82f291816501..000000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,29 +0,0 @@ -## Test continue-on-error behavior - -name: Test continue-on-error -on: - workflow_dispatch: - inputs: - clean_build_required: - description: Clean before and after the run. - required: false - type: boolean - default: false - workflow_call: {} -concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-test-continue-on-error - cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} -jobs: - test-continue-on-error-behavior: - name: Test continue-on-error - runs-on: ubuntu-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Clean before - run: | - echo "Oops..." - exit 1 From 66e7a49b8f26b3da3b82f96eced851b7dd0c9469 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:23:45 +0000 Subject: [PATCH 19/41] update: gui macos continue on error --- .github/workflows/gui-pull-request.yml | 4 ++-- .github/workflows/gui.yml | 3 +++ build/build/src/ci_gen.rs | 13 +++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index d3e1c65ce27d..3ec51ea8211e 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -177,12 +177,12 @@ jobs: # This job is used to report success if the needed jobs were successful. # This is a workaround to make optional jobs required if they run checks-report: - name: Checks Report + name: PR Checks Report runs-on: ubuntu-latest needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] if: always() steps: - - name: Combined Checks Report + - name: Checks Summary run: | echo "GUI Checks: ${{ needs.gui-checks.result }}" echo "Storybook: ${{ needs.storybook.result }}" diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index 559b59ad2619..99205c69b8f9 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -62,6 +62,7 @@ jobs: name: Build Backend (macos, amd64) runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack @@ -202,6 +203,7 @@ jobs: name: GUI build (macos, amd64) runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack @@ -387,6 +389,7 @@ jobs: - enso-build-ci-gen-job-build-backend-macos-amd64 runs-on: - macos-13 + continue-on-error: true steps: - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index 994fe50f33c8..8cd76f35f752 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -694,11 +694,20 @@ pub fn gui() -> Result { }; for target in PR_CHECKED_TARGETS { - let project_manager_job = workflow.add(target, job::BuildBackend); + let continue_on_error = match target { + (OS::MacOS, Arch::X86_64) => Some(true), + _ => None, + }; + let project_manager_job = workflow.add_customized(target, job::BuildBackend, |job| { + job.continue_on_error = continue_on_error; + }); workflow.add_customized(target, job::PackageIde, |job| { job.needs.insert(project_manager_job.clone()); + job.continue_on_error = continue_on_error; + }); + workflow.add_customized(target, job::GuiBuild, |job| { + job.continue_on_error = continue_on_error; }); - workflow.add(target, job::GuiBuild); } Ok(workflow) } From fc09e7ec913ff29f12e5add1b28a7437d01f4d3f Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:35:29 +0000 Subject: [PATCH 20/41] refactor: rename pull request workflow --- .github/workflows/{gui-pull-request.yml => pull-request.yml} | 3 +++ 1 file changed, 3 insertions(+) rename .github/workflows/{gui-pull-request.yml => pull-request.yml} (97%) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/pull-request.yml similarity index 97% rename from .github/workflows/gui-pull-request.yml rename to .github/workflows/pull-request.yml index 3ec51ea8211e..69fc6d237649 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -44,6 +44,7 @@ jobs: .prettierignore vitest.workspace.ts .github/workflows/gui* + .github/workflows/pull-request.yml files_ignore: | app/ide-desktop/** app/gui/scripts/** @@ -85,6 +86,7 @@ jobs: Cargo.toml rust-toolchain.toml rustfmt.toml + .github/workflows/pull-request.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} @@ -123,6 +125,7 @@ jobs: Cargo.toml rust-toolchain.toml .github/workflows/scala-new.yml + .github/workflows/pull-request.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} From 89785081b0092ee77880df87b2dd09a7e13d4bf4 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:45:49 +0000 Subject: [PATCH 21/41] refactor: rename workflows --- ...ine-nightly.yml => engine-checks-nightly.yml} | 0 .../{scala-new.yml => engine-checks.yml} | 0 .github/workflows/{gui.yml => gui-packaging.yml} | 0 .../workflows/{gui-tests.yml => wasm-checks.yml} | 0 build/build/paths.yaml | 9 ++++----- build/build/src/ci_gen.rs | 16 ++++++++-------- 6 files changed, 12 insertions(+), 13 deletions(-) rename .github/workflows/{engine-nightly.yml => engine-checks-nightly.yml} (100%) rename .github/workflows/{scala-new.yml => engine-checks.yml} (100%) rename .github/workflows/{gui.yml => gui-packaging.yml} (100%) rename .github/workflows/{gui-tests.yml => wasm-checks.yml} (100%) diff --git a/.github/workflows/engine-nightly.yml b/.github/workflows/engine-checks-nightly.yml similarity index 100% rename from .github/workflows/engine-nightly.yml rename to .github/workflows/engine-checks-nightly.yml diff --git a/.github/workflows/scala-new.yml b/.github/workflows/engine-checks.yml similarity index 100% rename from .github/workflows/scala-new.yml rename to .github/workflows/engine-checks.yml diff --git a/.github/workflows/gui.yml b/.github/workflows/gui-packaging.yml similarity index 100% rename from .github/workflows/gui.yml rename to .github/workflows/gui-packaging.yml diff --git a/.github/workflows/gui-tests.yml b/.github/workflows/wasm-checks.yml similarity index 100% rename from .github/workflows/gui-tests.yml rename to .github/workflows/wasm-checks.yml diff --git a/build/build/paths.yaml b/build/build/paths.yaml index 9db33cbe4404..342b6e8862ee 100644 --- a/build/build/paths.yaml +++ b/build/build/paths.yaml @@ -7,16 +7,15 @@ workflows/: changelog.yml: engine-benchmark.yml: - gui-tests.yml: - gui.yml: - engine-nightly.yml: + engine-checks-nightly.yml: + engine-checks.yml: extra-nightly-tests.yml: + gui-packaging.yml: nightly.yml: promote.yml: release.yml: - scala-new.yml: - shader-tools.yml: std-libs-benchmark.yml: + wasm-checks.yml: app/: gui/: # GUI. dist/: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index 8cd76f35f752..c137233108f7 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -680,7 +680,7 @@ pub fn typical_check_triggers() -> Event { } } -pub fn gui() -> Result { +pub fn gui_packaging() -> Result { let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), workflow_call: Some(default()), @@ -712,7 +712,7 @@ pub fn gui() -> Result { Ok(workflow) } -pub fn gui_tests() -> Result { +pub fn wasm_checks() -> Result { let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), workflow_call: Some(default()), @@ -730,7 +730,7 @@ pub fn gui_tests() -> Result { Ok(workflow) } -pub fn backend() -> Result { +pub fn engine_checks() -> Result { let on = Event { workflow_dispatch: Some(manual_workflow_dispatch()), workflow_call: Some(default()), @@ -757,7 +757,7 @@ pub fn backend() -> Result { Ok(workflow) } -pub fn engine_nightly() -> Result { +pub fn engine_checks_nightly() -> Result { let on = Event { schedule: vec![Schedule::new("0 3 * * *")?], workflow_dispatch: Some(manual_workflow_dispatch()), @@ -863,11 +863,11 @@ pub fn generate( let workflows = [ (repo_root.changelog_yml.to_path_buf(), changelog()?), (repo_root.nightly_yml.to_path_buf(), nightly()?), - (repo_root.scala_new_yml.to_path_buf(), backend()?), - (repo_root.engine_nightly_yml.to_path_buf(), engine_nightly()?), + (repo_root.engine_checks_yml.to_path_buf(), engine_checks()?), + (repo_root.engine_checks_nightly_yml.to_path_buf(), engine_checks_nightly()?), (repo_root.extra_nightly_tests_yml.to_path_buf(), extra_nightly_tests()?), - (repo_root.gui_yml.to_path_buf(), gui()?), - (repo_root.gui_tests_yml.to_path_buf(), gui_tests()?), + (repo_root.gui_packaging_yml.to_path_buf(), gui_packaging()?), + (repo_root.wasm_checks_yml.to_path_buf(), wasm_checks()?), (repo_root.engine_benchmark_yml.to_path_buf(), engine_benchmark()?), (repo_root.std_libs_benchmark_yml.to_path_buf(), std_libs_benchmark()?), (repo_root.release_yml.to_path_buf(), release()?), From 9029a8182fa18c6b0809f790e0722554bb731ce1 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:53:39 +0000 Subject: [PATCH 22/41] update: pull request workflow --- .github/workflows/pull-request.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 69fc6d237649..d7212bfaecf3 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -86,6 +86,7 @@ jobs: Cargo.toml rust-toolchain.toml rustfmt.toml + .github/workflows/wasm-checks.yml .github/workflows/pull-request.yml - name: List all changed files env: @@ -124,7 +125,7 @@ jobs: Cargo.lock Cargo.toml rust-toolchain.toml - .github/workflows/scala-new.yml + .github/workflows/engine-checks.yml .github/workflows/pull-request.yml - name: List all changed files env: @@ -153,21 +154,21 @@ jobs: wasm-checks: name: ๐Ÿงฐ WASM Checks - uses: ./.github/workflows/gui-tests.yml + uses: ./.github/workflows/wasm-checks.yml needs: [wasm-changed-files] if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks: name: ๐Ÿงฐ Engine Checks - uses: ./.github/workflows/scala-new.yml + uses: ./.github/workflows/engine-checks.yml needs: [engine-changed-files] if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging: name: ๐Ÿงฐ GUI Packaging - uses: ./.github/workflows/gui.yml + uses: ./.github/workflows/gui-packaging.yml needs: [gui-changed-files, engine-changed-files] if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit From 8410bb16d0650cf8349671fcb0b176bab47174d5 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 16:56:12 +0000 Subject: [PATCH 23/41] misc: cleanup debug workflow --- .github/workflows/pull-request.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index d7212bfaecf3..524e3e694bbe 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -173,11 +173,6 @@ jobs: if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit - test-continue-on-error: - name: Test continue-on-error - uses: ./.github/workflows/test.yml - secrets: inherit - # This job is used to report success if the needed jobs were successful. # This is a workaround to make optional jobs required if they run checks-report: From 91158b3d8476e6571b5adc49c8439b9744f41d36 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 17:13:30 +0000 Subject: [PATCH 24/41] update: finishing touches --- .github/workflows/engine-checks.yml | 2 +- .github/workflows/gui-packaging.yml | 2 +- .github/workflows/wasm-checks.yml | 2 +- build/build/src/ci_gen.rs | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/engine-checks.yml b/.github/workflows/engine-checks.yml index f4b76b2e8cc4..355aac833a38 100644 --- a/.github/workflows/engine-checks.yml +++ b/.github/workflows/engine-checks.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: Engine Checks +name: โš™๏ธ Engine Checks on: workflow_dispatch: inputs: diff --git a/.github/workflows/gui-packaging.yml b/.github/workflows/gui-packaging.yml index 99205c69b8f9..e8b921264972 100644 --- a/.github/workflows/gui-packaging.yml +++ b/.github/workflows/gui-packaging.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: GUI Packaging +name: ๐Ÿ— GUI Packaging on: workflow_dispatch: inputs: diff --git a/.github/workflows/wasm-checks.yml b/.github/workflows/wasm-checks.yml index 246f8bb97305..d51b0eb9548c 100644 --- a/.github/workflows/wasm-checks.yml +++ b/.github/workflows/wasm-checks.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: WASM Checks +name: ๐Ÿฆ€ WASM Checks on: workflow_dispatch: inputs: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index c137233108f7..3d043386a017 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -687,7 +687,7 @@ pub fn gui_packaging() -> Result { ..default() }; let mut workflow = Workflow { - name: "GUI Packaging".into(), + name: "๐Ÿ— GUI Packaging".into(), concurrency: Some(concurrency("gui-packaging")), on, ..default() @@ -719,7 +719,7 @@ pub fn wasm_checks() -> Result { ..default() }; let mut workflow = Workflow { - name: "WASM Checks".into(), + name: "๐Ÿฆ€ WASM Checks".into(), concurrency: Some(concurrency("wasm-checks")), on, ..default() @@ -737,7 +737,7 @@ pub fn engine_checks() -> Result { ..default() }; let mut workflow = Workflow { - name: "Engine Checks".into(), + name: "โš™๏ธ Engine Checks".into(), concurrency: Some(concurrency("engine-checks")), on, ..default() From 4868af5402140cad11173c142dc911e48464b5e1 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 2 Dec 2024 17:25:54 +0000 Subject: [PATCH 25/41] misc: naming --- .github/workflows/engine-checks.yml | 2 +- .github/workflows/gui-packaging.yml | 2 +- .github/workflows/pull-request.yml | 6 +++--- .github/workflows/wasm-checks.yml | 2 +- build/build/src/ci_gen.rs | 10 +++++----- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/engine-checks.yml b/.github/workflows/engine-checks.yml index 355aac833a38..f4b76b2e8cc4 100644 --- a/.github/workflows/engine-checks.yml +++ b/.github/workflows/engine-checks.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: โš™๏ธ Engine Checks +name: Engine Checks on: workflow_dispatch: inputs: diff --git a/.github/workflows/gui-packaging.yml b/.github/workflows/gui-packaging.yml index e8b921264972..99205c69b8f9 100644 --- a/.github/workflows/gui-packaging.yml +++ b/.github/workflows/gui-packaging.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: ๐Ÿ— GUI Packaging +name: GUI Packaging on: workflow_dispatch: inputs: diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 524e3e694bbe..45cbad3d5985 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -153,21 +153,21 @@ jobs: secrets: inherit wasm-checks: - name: ๐Ÿงฐ WASM Checks + name: ๐Ÿฆ€ WASM Checks uses: ./.github/workflows/wasm-checks.yml needs: [wasm-changed-files] if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks: - name: ๐Ÿงฐ Engine Checks + name: โš™๏ธ Engine Checks uses: ./.github/workflows/engine-checks.yml needs: [engine-changed-files] if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging: - name: ๐Ÿงฐ GUI Packaging + name: ๐Ÿ— GUI Packaging uses: ./.github/workflows/gui-packaging.yml needs: [gui-changed-files, engine-changed-files] if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' diff --git a/.github/workflows/wasm-checks.yml b/.github/workflows/wasm-checks.yml index d51b0eb9548c..246f8bb97305 100644 --- a/.github/workflows/wasm-checks.yml +++ b/.github/workflows/wasm-checks.yml @@ -1,7 +1,7 @@ # This file is auto-generated. Do not edit it manually! # Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. -name: ๐Ÿฆ€ WASM Checks +name: WASM Checks on: workflow_dispatch: inputs: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index 3d043386a017..b93111a42e02 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -564,7 +564,7 @@ fn add_release_steps(workflow: &mut Workflow) -> Result { Ok(()) } -/// Add jobs that perform backend checks ,including Scala and Standard Library tests. +/// Add jobs that perform backend checks, including Scala and Standard Library tests. pub fn add_backend_checks_customized( workflow: &mut Workflow, target: Target, @@ -586,7 +586,7 @@ pub fn add_backend_checks_customized( ); } -/// Add jobs that perform backend checks ,including Scala and Standard Library tests. +/// Add jobs that perform backend checks, including Scala and Standard Library tests. pub fn add_backend_checks( workflow: &mut Workflow, target: Target, @@ -687,7 +687,7 @@ pub fn gui_packaging() -> Result { ..default() }; let mut workflow = Workflow { - name: "๐Ÿ— GUI Packaging".into(), + name: "GUI Packaging".into(), concurrency: Some(concurrency("gui-packaging")), on, ..default() @@ -719,7 +719,7 @@ pub fn wasm_checks() -> Result { ..default() }; let mut workflow = Workflow { - name: "๐Ÿฆ€ WASM Checks".into(), + name: "WASM Checks".into(), concurrency: Some(concurrency("wasm-checks")), on, ..default() @@ -737,7 +737,7 @@ pub fn engine_checks() -> Result { ..default() }; let mut workflow = Workflow { - name: "โš™๏ธ Engine Checks".into(), + name: "Engine Checks".into(), concurrency: Some(concurrency("engine-checks")), on, ..default() From 6bde1f7268984dd097e6f319a27786dfbca1c591 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Tue, 3 Dec 2024 15:10:32 +0000 Subject: [PATCH 26/41] feat: optional targets --- .github/workflows/engine-checks-optional.yml | 179 +++++++++++++++++ .github/workflows/engine-checks.yml | 160 --------------- .github/workflows/gui-packaging-optional.yml | 197 +++++++++++++++++++ .github/workflows/gui-packaging.yml | 178 ----------------- .github/workflows/pull-request.yml | 16 +- build/build/paths.yaml | 2 + build/build/src/ci_gen.rs | 69 +++++-- 7 files changed, 446 insertions(+), 355 deletions(-) create mode 100644 .github/workflows/engine-checks-optional.yml create mode 100644 .github/workflows/gui-packaging-optional.yml diff --git a/.github/workflows/engine-checks-optional.yml b/.github/workflows/engine-checks-optional.yml new file mode 100644 index 000000000000..ad1d1eb8ea7a --- /dev/null +++ b/.github/workflows/engine-checks-optional.yml @@ -0,0 +1,179 @@ +# This file is auto-generated. Do not edit it manually! +# Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. + +name: Engine Checks (Optional) +on: + workflow_dispatch: + inputs: + clean_build_required: + description: Clean before and after the run. + required: false + type: boolean + default: false + workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-engine-checks-optional + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} +jobs: + enso-build-ci-gen-job-ci-check-backend-graal-vm-ce-macos-amd64: + name: Engine (GraalVM CE) (macos, amd64) + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run backend ci-check + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + env: + GRAAL_EDITION: GraalVM CE + enso-build-ci-gen-job-jvm-tests-graal-vm-ce-macos-amd64: + name: JVM Tests (GraalVM CE) (macos, amd64) + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run backend test jvm + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: (success() || failure()) && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + name: Engine Test Reporter + uses: dorny/test-reporter@v1 + with: + max-annotations: 50 + name: Engine Tests Report (GraalVM CE, macos, amd64) + path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml + path-replace-backslashes: true + reporter: java-junit + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + env: + GRAAL_EDITION: GraalVM CE + permissions: + checks: write + enso-build-ci-gen-job-standard-library-tests-graal-vm-ce-macos-amd64: + name: Standard Library Tests (GraalVM CE) (macos, amd64) + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run backend test standard-library + env: + ENSO_LIB_S3_AWS_ACCESS_KEY_ID: ${{ secrets.ENSO_LIB_S3_AWS_ACCESS_KEY_ID }} + ENSO_LIB_S3_AWS_REGION: ${{ secrets.ENSO_LIB_S3_AWS_REGION }} + ENSO_LIB_S3_AWS_SECRET_ACCESS_KEY: ${{ secrets.ENSO_LIB_S3_AWS_SECRET_ACCESS_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: (success() || failure()) && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + name: Standard Library Test Reporter + uses: dorny/test-reporter@v1 + with: + max-annotations: 50 + name: Standard Library Tests Report (GraalVM CE, macos, amd64) + path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml + path-replace-backslashes: true + reporter: java-junit + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + env: + GRAAL_EDITION: GraalVM CE + permissions: + checks: write +env: + ENSO_BUILD_SKIP_VERSION_CHECK: "true" diff --git a/.github/workflows/engine-checks.yml b/.github/workflows/engine-checks.yml index f4b76b2e8cc4..80b81ed41535 100644 --- a/.github/workflows/engine-checks.yml +++ b/.github/workflows/engine-checks.yml @@ -60,51 +60,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} env: GRAAL_EDITION: GraalVM CE - enso-build-ci-gen-job-ci-check-backend-graal-vm-ce-macos-amd64: - name: Engine (GraalVM CE) (macos, amd64) - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run backend ci-check - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - env: - GRAAL_EDITION: GraalVM CE enso-build-ci-gen-job-ci-check-backend-graal-vm-ce-windows-amd64: name: Engine (GraalVM CE) (windows, amd64) runs-on: @@ -206,62 +161,6 @@ jobs: GRAAL_EDITION: GraalVM CE permissions: checks: write - enso-build-ci-gen-job-jvm-tests-graal-vm-ce-macos-amd64: - name: JVM Tests (GraalVM CE) (macos, amd64) - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run backend test jvm - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: (success() || failure()) && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) - name: Engine Test Reporter - uses: dorny/test-reporter@v1 - with: - max-annotations: 50 - name: Engine Tests Report (GraalVM CE, macos, amd64) - path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml - path-replace-backslashes: true - reporter: java-junit - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - env: - GRAAL_EDITION: GraalVM CE - permissions: - checks: write enso-build-ci-gen-job-jvm-tests-graal-vm-ce-windows-amd64: name: JVM Tests (GraalVM CE) (windows, amd64) runs-on: @@ -377,65 +276,6 @@ jobs: GRAAL_EDITION: GraalVM CE permissions: checks: write - enso-build-ci-gen-job-standard-library-tests-graal-vm-ce-macos-amd64: - name: Standard Library Tests (GraalVM CE) (macos, amd64) - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run backend test standard-library - env: - ENSO_LIB_S3_AWS_ACCESS_KEY_ID: ${{ secrets.ENSO_LIB_S3_AWS_ACCESS_KEY_ID }} - ENSO_LIB_S3_AWS_REGION: ${{ secrets.ENSO_LIB_S3_AWS_REGION }} - ENSO_LIB_S3_AWS_SECRET_ACCESS_KEY: ${{ secrets.ENSO_LIB_S3_AWS_SECRET_ACCESS_KEY }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: (success() || failure()) && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) - name: Standard Library Test Reporter - uses: dorny/test-reporter@v1 - with: - max-annotations: 50 - name: Standard Library Tests Report (GraalVM CE, macos, amd64) - path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml - path-replace-backslashes: true - reporter: java-junit - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - env: - GRAAL_EDITION: GraalVM CE - permissions: - checks: write enso-build-ci-gen-job-standard-library-tests-graal-vm-ce-windows-amd64: name: Standard Library Tests (GraalVM CE) (windows, amd64) runs-on: diff --git a/.github/workflows/gui-packaging-optional.yml b/.github/workflows/gui-packaging-optional.yml new file mode 100644 index 000000000000..3066d7559df6 --- /dev/null +++ b/.github/workflows/gui-packaging-optional.yml @@ -0,0 +1,197 @@ +# This file is auto-generated. Do not edit it manually! +# Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. + +name: GUI Packaging (Optional) +on: + workflow_dispatch: + inputs: + clean_build_required: + description: Clean before and after the run. + required: false + type: boolean + default: false + workflow_call: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-gui-packaging-optional + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} +jobs: + enso-build-ci-gen-job-build-backend-macos-amd64: + name: Build Backend (macos, amd64) + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run backend get + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + enso-build-ci-gen-job-gui-build-macos-amd64: + name: GUI build (macos, amd64) + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run gui build + env: + ENSO_CLOUD_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} + ENSO_CLOUD_CHAT_URL: ${{ vars.ENSO_CLOUD_CHAT_URL }} + ENSO_CLOUD_COGNITO_DOMAIN: ${{ vars.ENSO_CLOUD_COGNITO_DOMAIN }} + ENSO_CLOUD_COGNITO_REGION: ${{ vars.ENSO_CLOUD_COGNITO_REGION }} + ENSO_CLOUD_COGNITO_USER_POOL_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_ID }} + ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID }} + ENSO_CLOUD_ENVIRONMENT: ${{ vars.ENSO_CLOUD_ENVIRONMENT }} + ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }} + ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} + ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} + ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} + ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + enso-build-ci-gen-job-package-ide-macos-amd64: + name: Package New IDE (macos, amd64) + needs: + - enso-build-ci-gen-job-build-backend-macos-amd64 + runs-on: + - macos-13 + continue-on-error: true + steps: + - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') + name: Installing wasm-pack + uses: jetli/wasm-pack-action@v0.4.0 + with: + version: v0.12.1 + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + submodules: recursive + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run ide build --backend-source current-ci-run --gui-upload-artifact false + env: + APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} + APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} + APPLETEAMID: ${{ secrets.APPLE_NOTARIZATION_TEAM_ID }} + CSC_FOR_PULL_REQUEST: "true" + CSC_IDENTITY_AUTO_DISCOVERY: "true" + CSC_KEY_PASSWORD: ${{ secrets.APPLE_CODE_SIGNING_CERT_PASSWORD }} + CSC_LINK: ${{ secrets.APPLE_CODE_SIGNING_CERT }} + ENSO_CLOUD_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} + ENSO_CLOUD_CHAT_URL: ${{ vars.ENSO_CLOUD_CHAT_URL }} + ENSO_CLOUD_COGNITO_DOMAIN: ${{ vars.ENSO_CLOUD_COGNITO_DOMAIN }} + ENSO_CLOUD_COGNITO_REGION: ${{ vars.ENSO_CLOUD_COGNITO_REGION }} + ENSO_CLOUD_COGNITO_USER_POOL_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_ID }} + ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID }} + ENSO_CLOUD_ENVIRONMENT: ${{ vars.ENSO_CLOUD_ENVIRONMENT }} + ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }} + ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} + ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} + ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} + ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: corepack pnpm -r --filter enso exec playwright test + env: + DEBUG: "pw:browser log:" + ENSO_TEST_USER: ${{ secrets.ENSO_CLOUD_TEST_ACCOUNT_USERNAME }} + ENSO_TEST_USER_PASSWORD: ${{ secrets.ENSO_CLOUD_TEST_ACCOUNT_PASSWORD }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: failure() + name: Upload Test Traces + uses: actions/upload-artifact@v4 + with: + compression-level: 0 + name: test-traces-macos-amd64 + path: app/ide-desktop/client/test-traces + - run: rm $HOME/.enso/credentials + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: failure() && runner.os == 'Windows' + name: List files if failed (Windows) + run: Get-ChildItem -Force -Recurse + - if: failure() && runner.os != 'Windows' + name: List files if failed (non-Windows) + run: ls -lAR + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +env: + ENSO_BUILD_SKIP_VERSION_CHECK: "true" diff --git a/.github/workflows/gui-packaging.yml b/.github/workflows/gui-packaging.yml index 99205c69b8f9..52fcced5cb4e 100644 --- a/.github/workflows/gui-packaging.yml +++ b/.github/workflows/gui-packaging.yml @@ -58,49 +58,6 @@ jobs: run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - enso-build-ci-gen-job-build-backend-macos-amd64: - name: Build Backend (macos, amd64) - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run backend get - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} enso-build-ci-gen-job-build-backend-windows-amd64: name: Build Backend (windows, amd64) runs-on: @@ -199,61 +156,6 @@ jobs: run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - enso-build-ci-gen-job-gui-build-macos-amd64: - name: GUI build (macos, amd64) - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run gui build - env: - ENSO_CLOUD_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} - ENSO_CLOUD_CHAT_URL: ${{ vars.ENSO_CLOUD_CHAT_URL }} - ENSO_CLOUD_COGNITO_DOMAIN: ${{ vars.ENSO_CLOUD_COGNITO_DOMAIN }} - ENSO_CLOUD_COGNITO_REGION: ${{ vars.ENSO_CLOUD_COGNITO_REGION }} - ENSO_CLOUD_COGNITO_USER_POOL_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_ID }} - ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID }} - ENSO_CLOUD_ENVIRONMENT: ${{ vars.ENSO_CLOUD_ENVIRONMENT }} - ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }} - ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} - ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} - ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} - ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} enso-build-ci-gen-job-gui-build-windows-amd64: name: GUI build (windows, amd64) runs-on: @@ -383,86 +285,6 @@ jobs: run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - enso-build-ci-gen-job-package-ide-macos-amd64: - name: Package New IDE (macos, amd64) - needs: - - enso-build-ci-gen-job-build-backend-macos-amd64 - runs-on: - - macos-13 - continue-on-error: true - steps: - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') - name: Installing wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: v0.12.1 - - name: Expose Artifact API and context information. - uses: actions/github-script@v7 - with: - script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - name: Build Script Setup - run: ./run --help || (git clean -ffdx && ./run --help) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean before - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run ide build --backend-source current-ci-run --gui-upload-artifact false - env: - APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} - APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} - APPLETEAMID: ${{ secrets.APPLE_NOTARIZATION_TEAM_ID }} - CSC_FOR_PULL_REQUEST: "true" - CSC_IDENTITY_AUTO_DISCOVERY: "true" - CSC_KEY_PASSWORD: ${{ secrets.APPLE_CODE_SIGNING_CERT_PASSWORD }} - CSC_LINK: ${{ secrets.APPLE_CODE_SIGNING_CERT }} - ENSO_CLOUD_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} - ENSO_CLOUD_CHAT_URL: ${{ vars.ENSO_CLOUD_CHAT_URL }} - ENSO_CLOUD_COGNITO_DOMAIN: ${{ vars.ENSO_CLOUD_COGNITO_DOMAIN }} - ENSO_CLOUD_COGNITO_REGION: ${{ vars.ENSO_CLOUD_COGNITO_REGION }} - ENSO_CLOUD_COGNITO_USER_POOL_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_ID }} - ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID: ${{ vars.ENSO_CLOUD_COGNITO_USER_POOL_WEB_CLIENT_ID }} - ENSO_CLOUD_ENVIRONMENT: ${{ vars.ENSO_CLOUD_ENVIRONMENT }} - ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }} - ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} - ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} - ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} - ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: corepack pnpm -r --filter enso exec playwright test - env: - DEBUG: "pw:browser log:" - ENSO_TEST_USER: ${{ secrets.ENSO_CLOUD_TEST_ACCOUNT_USERNAME }} - ENSO_TEST_USER_PASSWORD: ${{ secrets.ENSO_CLOUD_TEST_ACCOUNT_PASSWORD }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: failure() - name: Upload Test Traces - uses: actions/upload-artifact@v4 - with: - compression-level: 0 - name: test-traces-macos-amd64 - path: app/ide-desktop/client/test-traces - - run: rm $HOME/.enso/credentials - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: failure() && runner.os == 'Windows' - name: List files if failed (Windows) - run: Get-ChildItem -Force -Recurse - - if: failure() && runner.os != 'Windows' - name: List files if failed (non-Windows) - run: ls -lAR - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" - name: Clean after - run: ./run git-clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} enso-build-ci-gen-job-package-ide-windows-amd64: name: Package New IDE (windows, amd64) needs: diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 45cbad3d5985..cef9d751fbf3 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -166,6 +166,13 @@ jobs: if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit + engine-checks-optional: + name: โš™๏ธ Engine Checks (Optional) + uses: ./.github/workflows/engine-checks-optional.yml + needs: [engine-changed-files] + if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + gui-packaging: name: ๐Ÿ— GUI Packaging uses: ./.github/workflows/gui-packaging.yml @@ -173,8 +180,13 @@ jobs: if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit - # This job is used to report success if the needed jobs were successful. - # This is a workaround to make optional jobs required if they run + gui-packaging-optional: + name: ๐Ÿ— GUI Packaging (Optional) + uses: ./.github/workflows/gui-packaging-optional.yml + needs: [gui-changed-files, engine-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + checks-report: name: PR Checks Report runs-on: ubuntu-latest diff --git a/build/build/paths.yaml b/build/build/paths.yaml index 342b6e8862ee..288c22dd6efa 100644 --- a/build/build/paths.yaml +++ b/build/build/paths.yaml @@ -8,8 +8,10 @@ changelog.yml: engine-benchmark.yml: engine-checks-nightly.yml: + engine-checks-optional.yml: engine-checks.yml: extra-nightly-tests.yml: + gui-packaging-optional.yml: gui-packaging.yml: nightly.yml: promote.yml: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index b93111a42e02..772f20b0b4cf 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -80,6 +80,11 @@ pub const RELEASE_TARGETS: [(OS, Arch); 4] = [ pub const PR_CHECKED_TARGETS: [(OS, Arch); 3] = [(OS::Windows, Arch::X86_64), (OS::Linux, Arch::X86_64), (OS::MacOS, Arch::X86_64)]; +pub const PR_REQUIRED_TARGETS: [(OS, Arch); 2] = + [(OS::Windows, Arch::X86_64), (OS::Linux, Arch::X86_64)]; + +pub const PR_OPTIONAL_TARGETS: [(OS, Arch); 1] = [(OS::MacOS, Arch::X86_64)]; + pub const DEFAULT_BRANCH_NAME: &str = "develop"; pub const RELEASE_CONCURRENCY_GROUP: &str = "release"; @@ -693,11 +698,31 @@ pub fn gui_packaging() -> Result { ..default() }; - for target in PR_CHECKED_TARGETS { - let continue_on_error = match target { - (OS::MacOS, Arch::X86_64) => Some(true), - _ => None, - }; + for target in PR_REQUIRED_TARGETS { + let project_manager_job = workflow.add(target, job::BuildBackend); + workflow.add_customized(target, job::PackageIde, |job| { + job.needs.insert(project_manager_job.clone()); + }); + workflow.add(target, job::GuiBuild); + } + Ok(workflow) +} + +pub fn gui_packaging_optional() -> Result { + let on = Event { + workflow_dispatch: Some(manual_workflow_dispatch()), + workflow_call: Some(default()), + ..default() + }; + let mut workflow = Workflow { + name: "GUI Packaging (Optional)".into(), + concurrency: Some(concurrency("gui-packaging-optional")), + on, + ..default() + }; + + for target in PR_OPTIONAL_TARGETS { + let continue_on_error = Some(true); let project_manager_job = workflow.add_customized(target, job::BuildBackend, |job| { job.continue_on_error = continue_on_error; }); @@ -743,16 +768,28 @@ pub fn engine_checks() -> Result { ..default() }; workflow.add(PRIMARY_TARGET, job::VerifyLicensePackages); - for target in PR_CHECKED_TARGETS { - add_backend_checks_customized( - &mut workflow, - target, - graalvm::Edition::Community, - |target| match target { - (OS::MacOS, Arch::X86_64) => Some(true), - _ => None, - }, - ); + for target in PR_REQUIRED_TARGETS { + add_backend_checks(&mut workflow, target, graalvm::Edition::Community); + } + Ok(workflow) +} + +pub fn engine_checks_optional() -> Result { + let on = Event { + workflow_dispatch: Some(manual_workflow_dispatch()), + workflow_call: Some(default()), + ..default() + }; + let mut workflow = Workflow { + name: "Engine Checks (Optional)".into(), + concurrency: Some(concurrency("engine-checks-optional")), + on, + ..default() + }; + for target in PR_OPTIONAL_TARGETS { + add_backend_checks_customized(&mut workflow, target, graalvm::Edition::Community, |_| { + Some(true) + }); } Ok(workflow) } @@ -864,9 +901,11 @@ pub fn generate( (repo_root.changelog_yml.to_path_buf(), changelog()?), (repo_root.nightly_yml.to_path_buf(), nightly()?), (repo_root.engine_checks_yml.to_path_buf(), engine_checks()?), + (repo_root.engine_checks_optional_yml.to_path_buf(), engine_checks_optional()?), (repo_root.engine_checks_nightly_yml.to_path_buf(), engine_checks_nightly()?), (repo_root.extra_nightly_tests_yml.to_path_buf(), extra_nightly_tests()?), (repo_root.gui_packaging_yml.to_path_buf(), gui_packaging()?), + (repo_root.gui_packaging_optional_yml.to_path_buf(), gui_packaging_optional()?), (repo_root.wasm_checks_yml.to_path_buf(), wasm_checks()?), (repo_root.engine_benchmark_yml.to_path_buf(), engine_benchmark()?), (repo_root.std_libs_benchmark_yml.to_path_buf(), std_libs_benchmark()?), From 578fed718075bf71b37533a5f4ecf0fe79f0318e Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Tue, 3 Dec 2024 17:36:26 +0000 Subject: [PATCH 27/41] misc: naming --- .github/workflows/pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index cef9d751fbf3..95ab6a0414ca 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -187,8 +187,8 @@ jobs: if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit - checks-report: - name: PR Checks Report + required-checks: + name: Required Checks runs-on: ubuntu-latest needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] if: always() From d04f8c3046591e2318fa18f41bb90ccfed0b39be Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 13:37:15 +0000 Subject: [PATCH 28/41] update: reuse gui-changed-files --- .github/workflows/gui-changed-files.yml | 55 +++++++++++++++++++++++++ .github/workflows/pull-request.yml | 40 +----------------- 2 files changed, 57 insertions(+), 38 deletions(-) create mode 100644 .github/workflows/gui-changed-files.yml diff --git a/.github/workflows/gui-changed-files.yml b/.github/workflows/gui-changed-files.yml new file mode 100644 index 000000000000..b21ef40b1904 --- /dev/null +++ b/.github/workflows/gui-changed-files.yml @@ -0,0 +1,55 @@ +# This file is not auto-generated. Feel free to edit it. + +name: GUI Changed Files + +on: + workflow_call: + outputs: + all_changed_files: + description: "Returns all changed files" + value: ${{ jobs.gui-changed-files.outputs.all_changed_files }} + any_changed: + description: "Returns `true` when any of the filenames have changed" + value: ${{ jobs.gui-changed-files.outputs.any_changed }} + +jobs: + gui-changed-files: + runs-on: ubuntu-latest + name: ๐Ÿ” GUI files changed + outputs: + all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: gui-changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + app/** + package.json + pnpm-lock.yaml + pnpm-workspace.yaml + eslint.config.js + .prettierrc.js + .prettierignore + vitest.workspace.ts + .github/workflows/gui* + .github/workflows/pull-request.yml + files_ignore: | + app/ide-desktop/** + app/gui/scripts/** + app/gui/.gitignore + .git-* + - name: List all changed files + env: + ALL_CHANGED_FILES: ${{ steps.gui-changed-files.outputs.all_changed_files }} + run: | + if [[ "${{ steps.gui-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi + for file in ${ALL_CHANGED_FILES}; do + echo "$file" + done diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 95ab6a0414ca..d3d2a1488c14 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -21,45 +21,9 @@ permissions: jobs: gui-changed-files: - runs-on: ubuntu-latest name: ๐Ÿ” GUI files changed - outputs: - all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} - any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Get changed files - id: gui-changed-files - uses: tj-actions/changed-files@v45 - with: - files: | - app/** - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - eslint.config.js - .prettierrc.js - .prettierignore - vitest.workspace.ts - .github/workflows/gui* - .github/workflows/pull-request.yml - files_ignore: | - app/ide-desktop/** - app/gui/scripts/** - app/gui/.gitignore - .git-* - - name: List all changed files - env: - ALL_CHANGED_FILES: ${{ steps.gui-changed-files.outputs.all_changed_files }} - run: | - if [[ "${{ steps.gui-changed-files.outputs.any_changed }}" == "true" ]]; then - echo "Files changed:" - fi - for file in ${ALL_CHANGED_FILES}; do - echo "$file" - done + uses: ./.github/workflows/gui-changed-files.yml + secrets: inherit wasm-changed-files: runs-on: ubuntu-latest From 0bbc3d5fa6f86ac735e7803ae78be10ec875073e Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 13:39:00 +0000 Subject: [PATCH 29/41] update: speedup --- .github/workflows/pull-request.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index d3d2a1488c14..c432e6b2382b 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -127,28 +127,28 @@ jobs: name: โš™๏ธ Engine Checks uses: ./.github/workflows/engine-checks.yml needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks-optional: name: โš™๏ธ Engine Checks (Optional) uses: ./.github/workflows/engine-checks-optional.yml needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging: name: ๐Ÿ— GUI Packaging uses: ./.github/workflows/gui-packaging.yml needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging-optional: name: ๐Ÿ— GUI Packaging (Optional) uses: ./.github/workflows/gui-packaging-optional.yml needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit required-checks: From bdfdd53db3e74ce5ddbdd7b7aebb7114d48395b6 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 13:40:37 +0000 Subject: [PATCH 30/41] DEBUG: git-changed-files unnamed --- .github/workflows/gui-changed-files.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gui-changed-files.yml b/.github/workflows/gui-changed-files.yml index b21ef40b1904..2864ba4bd4ef 100644 --- a/.github/workflows/gui-changed-files.yml +++ b/.github/workflows/gui-changed-files.yml @@ -15,7 +15,6 @@ on: jobs: gui-changed-files: runs-on: ubuntu-latest - name: ๐Ÿ” GUI files changed outputs: all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} From 41f9b42d8661df48925a91ce963978eb352f56e3 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 13:52:57 +0000 Subject: [PATCH 31/41] update: reuse changed files --- .github/workflows/engine-changed-files.yml | 53 ++++++++++++++ .github/workflows/gui-changed-files.yml | 1 + .github/workflows/pull-request.yml | 81 ++-------------------- .github/workflows/wasm-changed-files.yml | 52 ++++++++++++++ 4 files changed, 113 insertions(+), 74 deletions(-) create mode 100644 .github/workflows/engine-changed-files.yml create mode 100644 .github/workflows/wasm-changed-files.yml diff --git a/.github/workflows/engine-changed-files.yml b/.github/workflows/engine-changed-files.yml new file mode 100644 index 000000000000..0066d659cf75 --- /dev/null +++ b/.github/workflows/engine-changed-files.yml @@ -0,0 +1,53 @@ +# This file is not auto-generated. Feel free to edit it. + +name: Engine Changed Files + +on: + workflow_call: + outputs: + all_changed_files: + description: "Returns all changed files" + value: ${{ jobs.engine-changed-files.outputs.all_changed_files }} + any_changed: + description: "Returns `true` when any of the filenames have changed" + value: ${{ jobs.engine-changed-files.outputs.any_changed }} + +jobs: + engine-changed-files: + runs-on: ubuntu-latest + name: ๐Ÿ” Changed Files + outputs: + all_changed_files: ${{ steps.engine-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.engine-changed-files.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: engine-changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + distribution/** + engine/** + lib/** + project/** + std-bits/** + test/** + build.sbt + .cargo/** + Cargo.lock + Cargo.toml + rust-toolchain.toml + .github/workflows/engine-checks.yml + .github/workflows/pull-request.yml + - name: List all changed files + env: + ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} + run: | + if [[ "${{ steps.engine-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi + for file in ${ALL_CHANGED_FILES}; do + echo "$file" + done diff --git a/.github/workflows/gui-changed-files.yml b/.github/workflows/gui-changed-files.yml index 2864ba4bd4ef..2a65f42bfcb7 100644 --- a/.github/workflows/gui-changed-files.yml +++ b/.github/workflows/gui-changed-files.yml @@ -15,6 +15,7 @@ on: jobs: gui-changed-files: runs-on: ubuntu-latest + name: ๐Ÿ” Changed Files outputs: all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index c432e6b2382b..dddd7896e21e 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -21,86 +21,19 @@ permissions: jobs: gui-changed-files: - name: ๐Ÿ” GUI files changed + name: ๐Ÿ” GUI Files Changed uses: ./.github/workflows/gui-changed-files.yml secrets: inherit wasm-changed-files: - runs-on: ubuntu-latest - name: ๐Ÿ” WASM files changed - outputs: - all_changed_files: ${{ steps.wasm-changed-files.outputs.all_changed_files }} - any_changed: ${{ steps.wasm-changed-files.outputs.any_changed }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Get changed files - id: wasm-changed-files - uses: tj-actions/changed-files@v45 - with: - files: | - .cargo/** - app/rust-ffi/** - build/** - lib/rust/** - tools/language-server/logstat/** - tools/language-server/wstest/** - Cargo.lock - Cargo.toml - rust-toolchain.toml - rustfmt.toml - .github/workflows/wasm-checks.yml - .github/workflows/pull-request.yml - - name: List all changed files - env: - ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} - run: | - if [[ "${{ steps.wasm-changed-files.outputs.any_changed }}" == "true" ]]; then - echo "Files changed:" - fi - for file in ${ALL_CHANGED_FILES}; do - echo "$file" - done + name: ๐Ÿ” WASM Files Changed + uses: ./.github/workflows/wasm-changed-files.yml + secrets: inherit engine-changed-files: - runs-on: ubuntu-latest - name: ๐Ÿ” Engine files changed - outputs: - all_changed_files: ${{ steps.engine-changed-files.outputs.all_changed_files }} - any_changed: ${{ steps.engine-changed-files.outputs.any_changed }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Get changed files - id: engine-changed-files - uses: tj-actions/changed-files@v45 - with: - files: | - distribution/** - engine/** - lib/** - project/** - std-bits/** - test/** - build.sbt - .cargo/** - Cargo.lock - Cargo.toml - rust-toolchain.toml - .github/workflows/engine-checks.yml - .github/workflows/pull-request.yml - - name: List all changed files - env: - ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} - run: | - if [[ "${{ steps.engine-changed-files.outputs.any_changed }}" == "true" ]]; then - echo "Files changed:" - fi - for file in ${ALL_CHANGED_FILES}; do - echo "$file" - done + name: ๐Ÿ” Engine Files Changed + uses: ./.github/workflows/engine-changed-files.yml + secrets: inherit gui-checks: name: ๐Ÿงฐ GUI Checks diff --git a/.github/workflows/wasm-changed-files.yml b/.github/workflows/wasm-changed-files.yml new file mode 100644 index 000000000000..0b0bc3a35980 --- /dev/null +++ b/.github/workflows/wasm-changed-files.yml @@ -0,0 +1,52 @@ +# This file is not auto-generated. Feel free to edit it. + +name: WASM Changed Files + +on: + workflow_call: + outputs: + all_changed_files: + description: "Returns all changed files" + value: ${{ jobs.wasm-changed-files.outputs.all_changed_files }} + any_changed: + description: "Returns `true` when any of the filenames have changed" + value: ${{ jobs.wasm-changed-files.outputs.any_changed }} + +jobs: + wasm-changed-files: + runs-on: ubuntu-latest + name: ๐Ÿ” Changed Files + outputs: + all_changed_files: ${{ steps.wasm-changed-files.outputs.all_changed_files }} + any_changed: ${{ steps.wasm-changed-files.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: wasm-changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + .cargo/** + app/rust-ffi/** + build/** + lib/rust/** + tools/language-server/logstat/** + tools/language-server/wstest/** + Cargo.lock + Cargo.toml + rust-toolchain.toml + rustfmt.toml + .github/workflows/wasm-checks.yml + .github/workflows/pull-request.yml + - name: List all changed files + env: + ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} + run: | + if [[ "${{ steps.wasm-changed-files.outputs.any_changed }}" == "true" ]]; then + echo "Files changed:" + fi + for file in ${ALL_CHANGED_FILES}; do + echo "$file" + done From 443d786838b8262b23e89e516493a974b13c6f65 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 14:11:26 +0000 Subject: [PATCH 32/41] update: split pull requests --- .github/workflows/engine-pull-request.yml | 52 ++++++++ .../workflows/gui-packaging-pull-request.yml | 54 +++++++++ .github/workflows/gui-pull-request.yml | 63 ++++++++++ .github/workflows/pull-request.yml | 114 ------------------ .github/workflows/wasm-pull-request.yml | 42 +++++++ 5 files changed, 211 insertions(+), 114 deletions(-) create mode 100644 .github/workflows/engine-pull-request.yml create mode 100644 .github/workflows/gui-packaging-pull-request.yml create mode 100644 .github/workflows/gui-pull-request.yml delete mode 100644 .github/workflows/pull-request.yml create mode 100644 .github/workflows/wasm-pull-request.yml diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml new file mode 100644 index 000000000000..87b3940551a8 --- /dev/null +++ b/.github/workflows/engine-pull-request.yml @@ -0,0 +1,52 @@ +# This file is not auto-generated. Feel free to edit it. + +name: โœจ Engine Pull Request + +on: + push: + branches: + - develop + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-engine-pull-request + cancel-in-progress: true + +permissions: + checks: write + +jobs: + engine-changed-files: + name: ๐Ÿ” Engine Files Changed + uses: ./.github/workflows/engine-changed-files.yml + secrets: inherit + + engine-checks: + name: โš™๏ธ Engine Checks + uses: ./.github/workflows/engine-checks.yml + needs: [engine-changed-files] + if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' + secrets: inherit + + engine-checks-optional: + name: โš™๏ธ Engine Checks (Optional) + uses: ./.github/workflows/engine-checks-optional.yml + needs: [engine-changed-files] + if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' + secrets: inherit + + required-checks: + name: Required Checks + runs-on: ubuntu-latest + needs: [engine-checks] + if: always() + steps: + - name: Checks Summary + run: | + echo "Engine Checks: ${{ needs.engine-checks.result }}" + + if [[ "${{ needs.engine-checks.result }}" == "failure"]]; then + exit 1 + fi + + echo "Success!" diff --git a/.github/workflows/gui-packaging-pull-request.yml b/.github/workflows/gui-packaging-pull-request.yml new file mode 100644 index 000000000000..1f00f9a888e3 --- /dev/null +++ b/.github/workflows/gui-packaging-pull-request.yml @@ -0,0 +1,54 @@ +# This file is not auto-generated. Feel free to edit it. + +name: โœจ GUI Packaging Pull Request + +on: + push: + branches: + - develop + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-gui-packaging-pull-request + cancel-in-progress: true + +jobs: + gui-changed-files: + name: ๐Ÿ” GUI Files Changed + uses: ./.github/workflows/gui-changed-files.yml + secrets: inherit + + engine-changed-files: + name: ๐Ÿ” Engine Files Changed + uses: ./.github/workflows/engine-changed-files.yml + secrets: inherit + + gui-packaging: + name: ๐Ÿ— GUI Packaging + uses: ./.github/workflows/gui-packaging.yml + needs: [gui-changed-files, engine-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + + gui-packaging-optional: + name: ๐Ÿ— GUI Packaging (Optional) + uses: ./.github/workflows/gui-packaging-optional.yml + needs: [gui-changed-files, engine-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + + required-checks: + name: Required Checks + runs-on: ubuntu-latest + needs: [gui-packaging] + if: always() + steps: + - name: Checks Summary + run: | + echo "GUI Packaging: ${{ needs.gui-packaging.result }}" + + if [[ "${{ needs.gui-packaging.result }}" == "failure"]]; then + exit 1 + fi + + echo "Success!" diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml new file mode 100644 index 000000000000..e2d51de96c08 --- /dev/null +++ b/.github/workflows/gui-pull-request.yml @@ -0,0 +1,63 @@ +# This file is not auto-generated. Feel free to edit it. + +name: โœจ GUI Pull Request + +on: + push: + branches: + - develop + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-gui-pull-request + cancel-in-progress: true + +permissions: + contents: read # Read-only access to repository contents + issues: write # Write access to issues + pull-requests: write # Write access to pull requests + statuses: write # Write access to commit statuses + checks: write + +jobs: + gui-changed-files: + name: ๐Ÿ” GUI Files Changed + uses: ./.github/workflows/gui-changed-files.yml + secrets: inherit + + gui-checks: + name: ๐Ÿงฐ GUI Checks + uses: ./.github/workflows/gui-checks.yml + needs: [gui-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + + storybook: + name: ๐Ÿ“š Deploy Storybook + uses: ./.github/workflows/storybook.yml + needs: [gui-changed-files] + if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + + required-checks: + name: Required Checks + runs-on: ubuntu-latest + needs: [gui-checks, storybook] + if: always() + steps: + - name: Checks Summary + run: | + echo "GUI Checks: ${{ needs.gui-checks.result }}" + echo "Storybook: ${{ needs.storybook.result }}" + + declare -a checks + checks+=("${{ needs.gui-checks.result }}") + checks+=("${{ needs.storybook.result }}") + + for result in "${checks[@]}"; do + if [[ "$result" == "failure" ]]; then + exit 1 + fi + done + + echo "Success!" diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml deleted file mode 100644 index dddd7896e21e..000000000000 --- a/.github/workflows/pull-request.yml +++ /dev/null @@ -1,114 +0,0 @@ -# This file is not auto-generated. Feel free to edit it. - -name: โœจ Pull Request - -on: - push: - branches: - - develop - pull_request: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read # Read-only access to repository contents - issues: write # Write access to issues - pull-requests: write # Write access to pull requests - statuses: write # Write access to commit statuses - checks: write - -jobs: - gui-changed-files: - name: ๐Ÿ” GUI Files Changed - uses: ./.github/workflows/gui-changed-files.yml - secrets: inherit - - wasm-changed-files: - name: ๐Ÿ” WASM Files Changed - uses: ./.github/workflows/wasm-changed-files.yml - secrets: inherit - - engine-changed-files: - name: ๐Ÿ” Engine Files Changed - uses: ./.github/workflows/engine-changed-files.yml - secrets: inherit - - gui-checks: - name: ๐Ÿงฐ GUI Checks - uses: ./.github/workflows/gui-checks.yml - needs: [gui-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' - secrets: inherit - - storybook: - name: ๐Ÿ“š Deploy Storybook - uses: ./.github/workflows/storybook.yml - needs: [gui-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' - secrets: inherit - - wasm-checks: - name: ๐Ÿฆ€ WASM Checks - uses: ./.github/workflows/wasm-checks.yml - needs: [wasm-changed-files] - if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' - secrets: inherit - - engine-checks: - name: โš™๏ธ Engine Checks - uses: ./.github/workflows/engine-checks.yml - needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' - secrets: inherit - - engine-checks-optional: - name: โš™๏ธ Engine Checks (Optional) - uses: ./.github/workflows/engine-checks-optional.yml - needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' - secrets: inherit - - gui-packaging: - name: ๐Ÿ— GUI Packaging - uses: ./.github/workflows/gui-packaging.yml - needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' - secrets: inherit - - gui-packaging-optional: - name: ๐Ÿ— GUI Packaging (Optional) - uses: ./.github/workflows/gui-packaging-optional.yml - needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' - secrets: inherit - - required-checks: - name: Required Checks - runs-on: ubuntu-latest - needs: [gui-checks, storybook, wasm-checks, engine-checks, gui-packaging] - if: always() - steps: - - name: Checks Summary - run: | - echo "GUI Checks: ${{ needs.gui-checks.result }}" - echo "Storybook: ${{ needs.storybook.result }}" - echo "WASM Checks: ${{ needs.wasm-checks.result }}" - echo "Engine Checks: ${{ needs.engine-checks.result }}" - echo "GUI Packaging: ${{ needs.gui-packaging.result }}" - - declare -a checks - checks+=("${{ needs.gui-checks.result }}") - checks+=("${{ needs.storybook.result }}") - checks+=("${{ needs.wasm-checks.result }}") - checks+=("${{ needs.engine-checks.result }}") - checks+=("${{ needs.gui-packaging.result }}") - - for result in "${checks[@]}"; do - if [[ "$result" == "failure" ]]; then - exit 1 - fi - done - - echo "Success!" diff --git a/.github/workflows/wasm-pull-request.yml b/.github/workflows/wasm-pull-request.yml new file mode 100644 index 000000000000..17aaf59daa21 --- /dev/null +++ b/.github/workflows/wasm-pull-request.yml @@ -0,0 +1,42 @@ +# This file is not auto-generated. Feel free to edit it. + +name: โœจ WASM Pull Request + +on: + push: + branches: + - develop + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-wasm-pull-request + cancel-in-progress: true + +jobs: + wasm-changed-files: + name: ๐Ÿ” WASM Files Changed + uses: ./.github/workflows/wasm-changed-files.yml + secrets: inherit + + wasm-checks: + name: ๐Ÿฆ€ WASM Checks + uses: ./.github/workflows/wasm-checks.yml + needs: [wasm-changed-files] + if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + secrets: inherit + + required-checks: + name: Required Checks + runs-on: ubuntu-latest + needs: [wasm-checks] + if: always() + steps: + - name: Checks Summary + run: | + echo "WASM Checks: ${{ needs.wasm-checks.result }}" + + if [[ "${{ needs.wasm-checks.result }}" == "failure"]]; then + exit 1 + fi + + echo "Success!" From 834e7876df78a3f7784247547c6ebc513fd049e5 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 14:13:29 +0000 Subject: [PATCH 33/41] fix: shell script --- .github/workflows/engine-pull-request.yml | 2 +- .github/workflows/gui-packaging-pull-request.yml | 2 +- .github/workflows/wasm-pull-request.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml index 87b3940551a8..99569989a8f9 100644 --- a/.github/workflows/engine-pull-request.yml +++ b/.github/workflows/engine-pull-request.yml @@ -45,7 +45,7 @@ jobs: run: | echo "Engine Checks: ${{ needs.engine-checks.result }}" - if [[ "${{ needs.engine-checks.result }}" == "failure"]]; then + if [[ "${{ needs.engine-checks.result }}" == "failure" ]]; then exit 1 fi diff --git a/.github/workflows/gui-packaging-pull-request.yml b/.github/workflows/gui-packaging-pull-request.yml index 1f00f9a888e3..87b863aaf022 100644 --- a/.github/workflows/gui-packaging-pull-request.yml +++ b/.github/workflows/gui-packaging-pull-request.yml @@ -47,7 +47,7 @@ jobs: run: | echo "GUI Packaging: ${{ needs.gui-packaging.result }}" - if [[ "${{ needs.gui-packaging.result }}" == "failure"]]; then + if [[ "${{ needs.gui-packaging.result }}" == "failure" ]]; then exit 1 fi diff --git a/.github/workflows/wasm-pull-request.yml b/.github/workflows/wasm-pull-request.yml index 17aaf59daa21..942572e79c8a 100644 --- a/.github/workflows/wasm-pull-request.yml +++ b/.github/workflows/wasm-pull-request.yml @@ -35,7 +35,7 @@ jobs: run: | echo "WASM Checks: ${{ needs.wasm-checks.result }}" - if [[ "${{ needs.wasm-checks.result }}" == "failure"]]; then + if [[ "${{ needs.wasm-checks.result }}" == "failure" ]]; then exit 1 fi From fabf0774906abf7f69cf4902a018c2415999e33d Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 14:58:23 +0000 Subject: [PATCH 34/41] misc: cleanup --- .github/workflows/engine-pull-request.yml | 6 +++--- .github/workflows/gui-packaging-pull-request.yml | 6 +++--- .github/workflows/gui-pull-request.yml | 2 +- .github/workflows/wasm-pull-request.yml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml index 99569989a8f9..84cb531edc49 100644 --- a/.github/workflows/engine-pull-request.yml +++ b/.github/workflows/engine-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ Engine Pull Request +name: โœจ Engine PR on: push: @@ -25,14 +25,14 @@ jobs: name: โš™๏ธ Engine Checks uses: ./.github/workflows/engine-checks.yml needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' + if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks-optional: name: โš™๏ธ Engine Checks (Optional) uses: ./.github/workflows/engine-checks-optional.yml needs: [engine-changed-files] - if: needs.engine-changed-files.outputs.any_changed == 'true-disable' || github.ref == 'refs/heads/develop' + if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit required-checks: diff --git a/.github/workflows/gui-packaging-pull-request.yml b/.github/workflows/gui-packaging-pull-request.yml index 87b863aaf022..4a1aeb75ff32 100644 --- a/.github/workflows/gui-packaging-pull-request.yml +++ b/.github/workflows/gui-packaging-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ GUI Packaging Pull Request +name: โœจ GUI Packaging PR on: push: @@ -27,14 +27,14 @@ jobs: name: ๐Ÿ— GUI Packaging uses: ./.github/workflows/gui-packaging.yml needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging-optional: name: ๐Ÿ— GUI Packaging (Optional) uses: ./.github/workflows/gui-packaging-optional.yml needs: [gui-changed-files, engine-changed-files] - if: needs.gui-changed-files.outputs.any_changed == 'true-disable' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' + if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit required-checks: diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index e2d51de96c08..c7796d752b83 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ GUI Pull Request +name: โœจ GUI PR on: push: diff --git a/.github/workflows/wasm-pull-request.yml b/.github/workflows/wasm-pull-request.yml index 942572e79c8a..727ed2e5e25c 100644 --- a/.github/workflows/wasm-pull-request.yml +++ b/.github/workflows/wasm-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ WASM Pull Request +name: โœจ WASM PR on: push: From a492747c0e85a7d29ac98a12d033f3461534b23b Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 15:45:32 +0000 Subject: [PATCH 35/41] misc: naming --- .github/workflows/engine-pull-request.yml | 2 +- .github/workflows/gui-packaging-pull-request.yml | 2 +- .github/workflows/gui-pull-request.yml | 2 +- .github/workflows/wasm-changed-files.yml | 2 +- .github/workflows/wasm-pull-request.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml index 84cb531edc49..4cf760890291 100644 --- a/.github/workflows/engine-pull-request.yml +++ b/.github/workflows/engine-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ Engine PR +name: โœจ Engine on: push: diff --git a/.github/workflows/gui-packaging-pull-request.yml b/.github/workflows/gui-packaging-pull-request.yml index 4a1aeb75ff32..0b7f2f976eeb 100644 --- a/.github/workflows/gui-packaging-pull-request.yml +++ b/.github/workflows/gui-packaging-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ GUI Packaging PR +name: โœจ GUI Packaging on: push: diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index c7796d752b83..988fc1f3f633 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ GUI PR +name: โœจ GUI on: push: diff --git a/.github/workflows/wasm-changed-files.yml b/.github/workflows/wasm-changed-files.yml index 0b0bc3a35980..f7f982f54734 100644 --- a/.github/workflows/wasm-changed-files.yml +++ b/.github/workflows/wasm-changed-files.yml @@ -15,7 +15,7 @@ on: jobs: wasm-changed-files: runs-on: ubuntu-latest - name: ๐Ÿ” Changed Files + name: Changed Files outputs: all_changed_files: ${{ steps.wasm-changed-files.outputs.all_changed_files }} any_changed: ${{ steps.wasm-changed-files.outputs.any_changed }} diff --git a/.github/workflows/wasm-pull-request.yml b/.github/workflows/wasm-pull-request.yml index 727ed2e5e25c..505257377704 100644 --- a/.github/workflows/wasm-pull-request.yml +++ b/.github/workflows/wasm-pull-request.yml @@ -1,6 +1,6 @@ # This file is not auto-generated. Feel free to edit it. -name: โœจ WASM PR +name: โœจ WASM on: push: From f5e2864dfbe768bc534e4e837ca72c40341570a9 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 15:46:05 +0000 Subject: [PATCH 36/41] misc: cleanup shader-tools workflow --- .github/workflows/shader-tools.yml | 105 ----------------------------- 1 file changed, 105 deletions(-) delete mode 100644 .github/workflows/shader-tools.yml diff --git a/.github/workflows/shader-tools.yml b/.github/workflows/shader-tools.yml deleted file mode 100644 index 4f9250871d5b..000000000000 --- a/.github/workflows/shader-tools.yml +++ /dev/null @@ -1,105 +0,0 @@ -# This file is auto-generated. Do not edit it manually! -# Edit the build/shader-tools/src/ci.rs module instead and run `cargo run --package enso-build-ci-gen`. - -name: Package Tools -on: - workflow_dispatch: {} -jobs: - run-create-linux-latest: - name: Run create (LinuxLatest) - runs-on: - - ubuntu-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - id: step_0 - run: cargo run --package enso-build-shader-tools --bin create - env: - GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - outputs: - ENSO_RELEASE_ID: ${{ steps.step_0.outputs.ENSO_RELEASE_ID }} - timeout-minutes: 360 - run-package-linux-latest: - name: Run package (LinuxLatest) - needs: - - run-create-linux-latest - runs-on: - - ubuntu-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - id: step_1 - run: cargo run --package enso-build-shader-tools --bin package - env: - GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - env: - ENSO_RELEASE_ID: ${{ needs.run-create-linux-latest.outputs.ENSO_RELEASE_ID }} - timeout-minutes: 360 - run-package-mac-os-latest: - name: Run package (MacOSLatest) - needs: - - run-create-linux-latest - runs-on: - - macos-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - id: step_3 - run: cargo run --package enso-build-shader-tools --bin package - env: - GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - env: - ENSO_RELEASE_ID: ${{ needs.run-create-linux-latest.outputs.ENSO_RELEASE_ID }} - timeout-minutes: 360 - run-package-windows-latest: - name: Run package (WindowsLatest) - needs: - - run-create-linux-latest - runs-on: - - windows-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - id: step_2 - run: cargo run --package enso-build-shader-tools --bin package - env: - GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - env: - ENSO_RELEASE_ID: ${{ needs.run-create-linux-latest.outputs.ENSO_RELEASE_ID }} - timeout-minutes: 360 - run-publish-linux-latest: - name: Run publish (LinuxLatest) - needs: - - run-create-linux-latest - - run-package-linux-latest - - run-package-mac-os-latest - - run-package-windows-latest - runs-on: - - ubuntu-latest - steps: - - name: Checking out the repository - uses: actions/checkout@v4 - with: - clean: false - submodules: recursive - - id: step_4 - run: cargo run --package enso-build-shader-tools --bin publish - env: - GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - env: - ENSO_RELEASE_ID: ${{ needs.run-create-linux-latest.outputs.ENSO_RELEASE_ID }} - timeout-minutes: 360 -env: - ENSO_BUILD_SKIP_VERSION_CHECK: "true" From 472d38d8a2ee0e3c9528d621c3c36a947a1d1fda Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Thu, 5 Dec 2024 17:04:45 +0000 Subject: [PATCH 37/41] update: changed files patterns --- .github/workflows/engine-changed-files.yml | 6 ++++-- .github/workflows/gui-changed-files.yml | 8 +++++--- .github/workflows/wasm-changed-files.yml | 3 +-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/engine-changed-files.yml b/.github/workflows/engine-changed-files.yml index 0066d659cf75..e35c43956d66 100644 --- a/.github/workflows/engine-changed-files.yml +++ b/.github/workflows/engine-changed-files.yml @@ -15,7 +15,7 @@ on: jobs: engine-changed-files: runs-on: ubuntu-latest - name: ๐Ÿ” Changed Files + name: Changed Files outputs: all_changed_files: ${{ steps.engine-changed-files.outputs.all_changed_files }} any_changed: ${{ steps.engine-changed-files.outputs.any_changed }} @@ -39,8 +39,10 @@ jobs: Cargo.lock Cargo.toml rust-toolchain.toml + .github/workflows/engine-changed-files.yml + .github/workflows/engine-checks-optional.yml .github/workflows/engine-checks.yml - .github/workflows/pull-request.yml + .github/workflows/engine-pull-request.yml - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.engine-changed-files.outputs.all_changed_files }} diff --git a/.github/workflows/gui-changed-files.yml b/.github/workflows/gui-changed-files.yml index 2a65f42bfcb7..d16036ae0093 100644 --- a/.github/workflows/gui-changed-files.yml +++ b/.github/workflows/gui-changed-files.yml @@ -15,7 +15,7 @@ on: jobs: gui-changed-files: runs-on: ubuntu-latest - name: ๐Ÿ” Changed Files + name: Changed Files outputs: all_changed_files: ${{ steps.gui-changed-files.outputs.all_changed_files }} any_changed: ${{ steps.gui-changed-files.outputs.any_changed }} @@ -36,8 +36,10 @@ jobs: .prettierrc.js .prettierignore vitest.workspace.ts - .github/workflows/gui* - .github/workflows/pull-request.yml + .github/workflows/gui-changed-files.yml + .github/workflows/gui-checks.yml + .github/workflows/gui-pull-request.yml + .github/workflows/storybook.yml files_ignore: | app/ide-desktop/** app/gui/scripts/** diff --git a/.github/workflows/wasm-changed-files.yml b/.github/workflows/wasm-changed-files.yml index f7f982f54734..fdbf1aa2b345 100644 --- a/.github/workflows/wasm-changed-files.yml +++ b/.github/workflows/wasm-changed-files.yml @@ -38,8 +38,7 @@ jobs: Cargo.toml rust-toolchain.toml rustfmt.toml - .github/workflows/wasm-checks.yml - .github/workflows/pull-request.yml + .github/workflows/wasm* - name: List all changed files env: ALL_CHANGED_FILES: ${{ steps.wasm-changed-files.outputs.all_changed_files }} From 27f72b72ff0fc110033925b75c8924e66e8f03ac Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Fri, 6 Dec 2024 10:06:57 +0000 Subject: [PATCH 38/41] misc: optimize naming --- .github/workflows/engine-pull-request.yml | 6 +++--- .github/workflows/gui-packaging-pull-request.yml | 4 ++-- .github/workflows/gui-pull-request.yml | 4 ++-- .github/workflows/wasm-pull-request.yml | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml index 4cf760890291..a886fedc149e 100644 --- a/.github/workflows/engine-pull-request.yml +++ b/.github/workflows/engine-pull-request.yml @@ -17,19 +17,19 @@ permissions: jobs: engine-changed-files: - name: ๐Ÿ” Engine Files Changed + name: ๐Ÿ” Files Changed uses: ./.github/workflows/engine-changed-files.yml secrets: inherit engine-checks: - name: โš™๏ธ Engine Checks + name: โš™๏ธ Checks uses: ./.github/workflows/engine-checks.yml needs: [engine-changed-files] if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit engine-checks-optional: - name: โš™๏ธ Engine Checks (Optional) + name: โš™๏ธ Checks (Optional) uses: ./.github/workflows/engine-checks-optional.yml needs: [engine-changed-files] if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' diff --git a/.github/workflows/gui-packaging-pull-request.yml b/.github/workflows/gui-packaging-pull-request.yml index 0b7f2f976eeb..c379bb18b3fb 100644 --- a/.github/workflows/gui-packaging-pull-request.yml +++ b/.github/workflows/gui-packaging-pull-request.yml @@ -24,14 +24,14 @@ jobs: secrets: inherit gui-packaging: - name: ๐Ÿ— GUI Packaging + name: ๐Ÿ“ฆ Package uses: ./.github/workflows/gui-packaging.yml needs: [gui-changed-files, engine-changed-files] if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit gui-packaging-optional: - name: ๐Ÿ— GUI Packaging (Optional) + name: ๐Ÿ“ฆ Package (Optional) uses: ./.github/workflows/gui-packaging-optional.yml needs: [gui-changed-files, engine-changed-files] if: needs.gui-changed-files.outputs.any_changed == 'true' || needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 988fc1f3f633..764e6bee8483 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -21,12 +21,12 @@ permissions: jobs: gui-changed-files: - name: ๐Ÿ” GUI Files Changed + name: ๐Ÿ” Files Changed uses: ./.github/workflows/gui-changed-files.yml secrets: inherit gui-checks: - name: ๐Ÿงฐ GUI Checks + name: ๐Ÿงฐ Checks uses: ./.github/workflows/gui-checks.yml needs: [gui-changed-files] if: needs.gui-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' diff --git a/.github/workflows/wasm-pull-request.yml b/.github/workflows/wasm-pull-request.yml index 505257377704..16aecc6559f5 100644 --- a/.github/workflows/wasm-pull-request.yml +++ b/.github/workflows/wasm-pull-request.yml @@ -14,12 +14,12 @@ concurrency: jobs: wasm-changed-files: - name: ๐Ÿ” WASM Files Changed + name: ๐Ÿ” Files Changed uses: ./.github/workflows/wasm-changed-files.yml secrets: inherit wasm-checks: - name: ๐Ÿฆ€ WASM Checks + name: ๐Ÿฆ€ Checks uses: ./.github/workflows/wasm-checks.yml needs: [wasm-changed-files] if: needs.wasm-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' From 14c7ac59869998294f7077af2ddbcbed777c8e5a Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Tue, 17 Dec 2024 15:57:37 +0000 Subject: [PATCH 39/41] fix: after merge --- .github/workflows/gui-pull-request.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index 0b7650d9e91d..a000a5c44748 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -25,24 +25,25 @@ jobs: uses: ./.github/workflows/gui-changed-files.yml secrets: inherit + prettier: + name: ๐Ÿงน Prettier + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - name: ๐Ÿ“ฆ Setup pnpm uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 name: โŽ” Setup Node with: node-version-file: .node-version cache: "pnpm" - - if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent') name: Installing wasm-pack uses: jetli/wasm-pack-action@v0.4.0 with: version: v0.12.1 - - name: ๐Ÿ“ฆ Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - - uses: actions/cache/restore@v4 name: Download cache id: cache @@ -52,10 +53,8 @@ jobs: key: ${{ runner.os }}-gui-${{ github.run_id }} restore-keys: | ${{ runner.os }}-gui - - name: Run prettier run: pnpm run ci:prettier - - name: ๐Ÿ’พ Save cache uses: actions/cache/save@v4 if: always() && steps.cache.outputs.cache-hit != 'true' @@ -65,7 +64,7 @@ jobs: path: | node_modules/.cache/prettier - checks: + gui-checks: name: ๐Ÿงฐ Checks uses: ./.github/workflows/gui-checks.yml needs: [gui-changed-files] From 4225fbb6bfc2e656be9b0420f092c574275c0e6c Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Tue, 17 Dec 2024 16:01:13 +0000 Subject: [PATCH 40/41] update: regen workflows --- .github/workflows/gui-packaging-optional.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gui-packaging-optional.yml b/.github/workflows/gui-packaging-optional.yml index 3066d7559df6..4f5ab0bfd79a 100644 --- a/.github/workflows/gui-packaging-optional.yml +++ b/.github/workflows/gui-packaging-optional.yml @@ -166,7 +166,7 @@ jobs: ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: corepack pnpm -r --filter enso exec playwright test + - run: corepack pnpm -r --filter enso exec playwright test --timeout 300000 env: DEBUG: "pw:browser log:" ENSO_TEST_USER: ${{ secrets.ENSO_CLOUD_TEST_ACCOUNT_USERNAME }} From eb4071b4f94f6058f0775596dbd118df682f83ee Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Tue, 17 Dec 2024 16:19:17 +0000 Subject: [PATCH 41/41] update: check prettier outcome --- .github/workflows/gui-pull-request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gui-pull-request.yml b/.github/workflows/gui-pull-request.yml index a000a5c44748..36d7f77faf93 100644 --- a/.github/workflows/gui-pull-request.yml +++ b/.github/workflows/gui-pull-request.yml @@ -81,15 +81,17 @@ jobs: required-checks: name: Required Checks runs-on: ubuntu-latest - needs: [gui-checks, storybook] + needs: [prettier, gui-checks, storybook] if: always() steps: - name: Checks Summary run: | + echo "Prettier: ${{ needs.prettier.result }}" echo "GUI Checks: ${{ needs.gui-checks.result }}" echo "Storybook: ${{ needs.storybook.result }}" declare -a checks + checks+=("${{ needs.prettier.result }}") checks+=("${{ needs.gui-checks.result }}") checks+=("${{ needs.storybook.result }}")