Skip to content

Commit

Permalink
ci(github): refactor the code change check logic to skip at job level
Browse files Browse the repository at this point in the history
Signed-off-by: Sandeep Nishad <sandeep.nishad1@ibm.com>
  • Loading branch information
sandeepnRES authored and petermetz committed Jan 18, 2024
1 parent d03b33a commit 24a90d4
Show file tree
Hide file tree
Showing 6 changed files with 261 additions and 370 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/test_weaver-asset-exchange-besu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,16 @@ jobs:
asset-exchange-besu:
needs: check_code_changed
if: ${{ false && needs.check_code_changed.outputs.status == 'true' }}
if: ${{ false }}
# The type of runner that the job will run on
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
app_contract: ["AliceERC1155", "AliceERC20", "AliceERC721"]
exclude:
- app_contract: ${{ needs.check_code_changed.outputs.status != 'true' }}

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
Expand Down
39 changes: 22 additions & 17 deletions .github/workflows/test_weaver-corda-interop-app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,43 @@ concurrency:
cancel-in-progress: true

jobs:
check_code_changed:
outputs:
interop_cordapp_changed: ${{ steps.changes.outputs.interop_cordapp_changed }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
interop_cordapp_changed:
- './weaver/common/protos-java-kt/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/network/corda-interop-app/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-corda-interop-app.yaml'
unit_test_interop_cordapp:
needs: check_code_changed
if: needs.check_code_changed.outputs.interop_cordapp_changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/common/protos-java-kt/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/network/corda-interop-app/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-corda-interop-app.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Set up JDK 8
- name: Set up JDK 8
uses: actions/setup-java@v3.11.0
with:
java-version: '8'
distribution: 'adopt'

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Protos (Local)
- name: Build Protos (Local)
run: make build
working-directory: weaver/common/protos-java-kt

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Corda Interop App (Local)
- name: Build Corda Interop App (Local)
run: make build-local
working-directory: weaver/core/network/corda-interop-app

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Run Tests (Local)
- name: Run Tests (Local)
run: make test
working-directory: weaver/core/network/corda-interop-app
164 changes: 68 additions & 96 deletions .github/workflows/test_weaver-docker-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,164 +18,151 @@ concurrency:
cancel-in-progress: true

jobs:
build_docker_relay:
# if: ${{ false }}
check_code_changed:
outputs:
relay_changed: ${{ steps.changes.outputs.relay_changed }}
fabric_driver_changed: ${{ steps.changes.outputs.fabric_driver_changed }}
corda_driver_changed: ${{ steps.changes.outputs.corda_driver_changed }}
iin_agent_changed: ${{ steps.changes.outputs.iin_agent_changed }}
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
relay_changed:
- './weaver/common/protos-rs/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/relay/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image
fabric_driver_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-js/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/fabric/interoperation-node-sdk/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/weaver/core/drivers/fabric-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
corda_driver_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-java-kt/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/network/corda-interop-app/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/corda/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/drivers/corda-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
iin_agent_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-js/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/fabric/interoperation-node-sdk/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/identity-management/iin-agent/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
build_docker_relay:
needs: check_code_changed
if: needs.check_code_changed.outputs.relay_changed == 'true'
# if: ${{ false }}
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- name: Build Image
run: make build-server-local
working-directory: weaver/core/relay

build_docker_fabric_driver_local:
needs: check_code_changed
if: needs.check_code_changed.outputs.fabric_driver_changed == 'true'
# if: ${{ false }}
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-js/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/fabric/interoperation-node-sdk/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/weaver/core/drivers/fabric-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Use Node.js ${{ env.NODEJS_VERSION }}
- name: Use Node.js ${{ env.NODEJS_VERSION }}
uses: actions/setup-node@v3.6.0
with:
node-version: ${{ env.NODEJS_VERSION }}

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Use Protoc 3.15
- name: Use Protoc 3.15
run: |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.15.6/protoc-3.15.6-linux-x86_64.zip
unzip protoc-3.15.6-linux-x86_64.zip -d protoc
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build JS Protos (Local)
- name: Build JS Protos (Local)
run: |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin"
make build
working-directory: weaver/common/protos-js

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Fabric Interop Node SDK (Local)
- name: Build Fabric Interop Node SDK (Local)
run: make build-local
working-directory: weaver/sdks/fabric/interoperation-node-sdk

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image (Local)
- name: Build Image (Local)
run: make build-image-local
working-directory: weaver/core/drivers/fabric-driver

build_docker_fabric_driver_packages:
if: ${{ false }}
needs: check_code_changed
if: ${{ false && needs.check_code_changed.outputs.fabric_driver_changed == 'true' }}
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/weaver/core/drivers/fabric-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Setup .npmrc
- name: Setup .npmrc
run: |
cp .npmrc.template .npmrc
sed -i "s/<personal-access-token>/${{ secrets.GITHUB_TOKEN }}/g" .npmrc
cat .npmrc
working-directory: weaver/core/drivers/fabric-driver

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image
- name: Build Image
run: make build-image
working-directory: weaver/core/drivers/fabric-driver

build_docker_corda_driver_local:
needs: check_code_changed
if: needs.check_code_changed.outputs.corda_driver_changed == 'true'
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-java-kt/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/network/corda-interop-app/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/corda/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/drivers/corda-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Set up JDK 8
- name: Set up JDK 8
uses: actions/setup-java@v3.11.0
with:
java-version: '8'
distribution: 'adopt'

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Protos (Local)
- name: Build Protos (Local)
run: make build
working-directory: weaver/common/protos-java-kt

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Corda Interop App (Local)
- name: Build Corda Interop App (Local)
run: make build-local
working-directory: weaver/core/network/corda-interop-app

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Corda Interop SDK (Local)
- name: Build Corda Interop SDK (Local)
run: make build
working-directory: weaver/sdks/corda

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image (Local)
- name: Build Image (Local)
run: make image-local
working-directory: weaver/core/drivers/corda-driver

build_docker_corda_driver_packages:
if: ${{ false }}
needs: check_code_changed
if: ${{ false && needs.check_code_changed.outputs.corda_driver_changed == 'true' }}
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/core/drivers/corda-driver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Generate github.properties
- name: Generate github.properties
run: |
echo "Using ${GITHUB_ACTOR} user."
echo "username=${GITHUB_ACTOR}" >> github.properties
Expand All @@ -193,53 +180,38 @@ jobs:
cat github.properties
working-directory: weaver/core/drivers/corda-driver

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image
- name: Build Image
run: make image
working-directory: weaver/core/drivers/corda-driver

build_docker_iin_agent_local:
needs: check_code_changed
if: needs.check_code_changed.outputs.iin_agent_changed == 'true'
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3.5.2

- uses: dorny/paths-filter@v2.11.1
id: changes
with:
filters: |
weaver_code_changed:
- './weaver/common/protos/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/common/protos-js/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/sdks/fabric/interoperation-node-sdk/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- './weaver/core/identity-management/iin-agent/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)'
- '.github/workflows/test_weaver-docker-build.yaml'
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Use Node.js ${{ env.NODEJS_VERSION }}
- name: Use Node.js ${{ env.NODEJS_VERSION }}
uses: actions/setup-node@v3.6.0
with:
node-version: ${{ env.NODEJS_VERSION }}

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Use Protoc 3.15
- name: Use Protoc 3.15
run: |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.15.6/protoc-3.15.6-linux-x86_64.zip
unzip protoc-3.15.6-linux-x86_64.zip -d protoc
- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build JS Protos (Local)
- name: Build JS Protos (Local)
run: |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin"
make build
working-directory: weaver/common/protos-js

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Fabric Interop Node SDK (Local)
- name: Build Fabric Interop Node SDK (Local)
run: make build-local
working-directory: weaver/sdks/fabric/interoperation-node-sdk

- if: steps.changes.outputs.weaver_code_changed == 'true'
name: Build Image
- name: Build Image
run: make build-image-local
working-directory: weaver/core/identity-management/iin-agent
Loading

0 comments on commit 24a90d4

Please sign in to comment.