From 4ddf3ed8a25ae411ebc8c8577631aa9ad6214fa6 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Tue, 13 Dec 2022 10:41:26 -0800 Subject: [PATCH 1/5] Use repo owner condition, add job aggregation --- .github/workflows/build.yml | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f11dbc7de..4e1be20ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,9 +6,21 @@ on: - develop jobs: + run-workflow: + name: PR Workflow + if: github.repository_owner == 'aws' + runs-on: ubuntu-latest + needs: [unit-functional, node-integration, node-esbuild-integration] + steps: + - name: report-failure + if: (needs.unit-functional.result != 'success' || needs.node-integration.result != 'success' || needs.node-esbuild-integration.result != 'success') + run: exit 1 + - name: report-success + run: exit 0 + unit-functional: name: ${{ matrix.os }} / ${{ matrix.python }} / unit-functional - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -32,7 +44,7 @@ jobs: node-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / node / npm ${{ matrix.npm }}.x - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -63,7 +75,7 @@ jobs: node-esbuild-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / esbuild / npm ${{ matrix.npm }}.x - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -94,7 +106,7 @@ jobs: golang-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / golang - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -119,7 +131,7 @@ jobs: java-maven-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / java maven - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -145,7 +157,7 @@ jobs: java-gradle-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / java gradle - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} env: GRADLE_OPTS: -Dorg.gradle.daemon=false @@ -173,7 +185,7 @@ jobs: custom-make-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / custom make - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -195,7 +207,7 @@ jobs: python-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / python - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -217,7 +229,7 @@ jobs: ruby-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / ruby-${{ matrix.ruby }} - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -245,7 +257,7 @@ jobs: dotnet-integration: name: ${{ matrix.os }} / ${{ matrix.python }} / dotnet - if: github.repository == 'aws/aws-lambda-builders' + if: github.repository_owner == 'aws' runs-on: ${{ matrix.os }} strategy: fail-fast: false From 10bc06fe83c4208204e69d39bd1051d8a2e781e7 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Tue, 13 Dec 2022 16:11:50 -0800 Subject: [PATCH 2/5] Test failing required test --- .github/workflows/build.yml | 24 ++++++++++++++++++++++-- tests/unit/test_builder.py | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e1be20ed..1fe143d9f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,10 +10,30 @@ jobs: name: PR Workflow if: github.repository_owner == 'aws' runs-on: ubuntu-latest - needs: [unit-functional, node-integration, node-esbuild-integration] + needs: + - unit-functional + - node-integration + - node-esbuild-integration + - golang-integration + - java-maven-intregration + - java-gradle-integration + - custom-make-integration + - python-integration + - ruby-integration + - dotnet-integration steps: - name: report-failure - if: (needs.unit-functional.result != 'success' || needs.node-integration.result != 'success' || needs.node-esbuild-integration.result != 'success') + if: | + needs.unit-functional.result != 'success' || + needs.node-integration.result != 'success' || + needs.node-esbuild-integration.result != 'success' || + needs.golang-integration.result != 'success' || + needs.java-maven-intregration != 'success' || + needs.java-gradle-integration.result != 'success' || + needs.custom-make-integration.result != 'success' || + needs.python-integration.result != 'success' || + needs.ruby-integration.result != 'success' || + needs.dotnet-integration.result != 'success' run: exit 1 - name: report-success run: exit 0 diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 3b6c55047..510a8b2ff 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -32,7 +32,7 @@ def test_must_load_all_default_workflows(self, get_workflow_mock, importlib_mock # then check if we tried to get a workflow for given capability get_workflow_mock.assert_called_with( Capability( - language=self.lang, dependency_manager=self.lang_framework, application_framework=self.app_framework + language="oh no", dependency_manager=self.lang_framework, application_framework=self.app_framework ) ) From 292056c0e7d6414ddbd783990c1916431bccc719 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Tue, 13 Dec 2022 16:17:12 -0800 Subject: [PATCH 3/5] Fix typo --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1fe143d9f..7a0490dcb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - node-integration - node-esbuild-integration - golang-integration - - java-maven-intregration + - java-maven-integration - java-gradle-integration - custom-make-integration - python-integration @@ -28,7 +28,7 @@ jobs: needs.node-integration.result != 'success' || needs.node-esbuild-integration.result != 'success' || needs.golang-integration.result != 'success' || - needs.java-maven-intregration != 'success' || + needs.java-maven-integration.result != 'success' || needs.java-gradle-integration.result != 'success' || needs.custom-make-integration.result != 'success' || needs.python-integration.result != 'success' || From 4423d927aaf8c9b87c12a66480de232a0fcd7dd6 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Tue, 13 Dec 2022 16:48:53 -0800 Subject: [PATCH 4/5] Change parent workflow to always run --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a0490dcb..5955909da 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,7 @@ on: jobs: run-workflow: name: PR Workflow - if: github.repository_owner == 'aws' + if: always() runs-on: ubuntu-latest needs: - unit-functional From 3dd9a4fc02b89623a28a0fdecca7f6cb63f2d4a5 Mon Sep 17 00:00:00 2001 From: Daniel Mil Date: Tue, 13 Dec 2022 17:01:11 -0800 Subject: [PATCH 5/5] Revert broken test --- tests/unit/test_builder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 510a8b2ff..3b6c55047 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -32,7 +32,7 @@ def test_must_load_all_default_workflows(self, get_workflow_mock, importlib_mock # then check if we tried to get a workflow for given capability get_workflow_mock.assert_called_with( Capability( - language="oh no", dependency_manager=self.lang_framework, application_framework=self.app_framework + language=self.lang, dependency_manager=self.lang_framework, application_framework=self.app_framework ) )