From 812944a3a8354d8a3f9579ca78415311858edb84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:20:19 +0200 Subject: [PATCH 1/8] Create main.yml --- .github/workflows/main.yml | 133 +++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..0f14327e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,133 @@ +name: Build Modules + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build-commoncode: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Build CommonCode + run: cd CommonCode && ./gradlew build + + build-encode: + needs: build-commoncode + if: ${{ needs.build-commoncode.result == 'success' && (needs.build-commoncode.outputs.changed != 'CommonCode' || github.event_name == 'push') }} + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check if Encode has changed + id: check-encode + run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Encode) + + - name: Build Encode module + run: | + if [ "${{ steps.check-encode.outputs.changed }}" == "Encode" ] || [ "${{ github.event_name }}" == "push" ]; then + cd Encode + ./gradlew build + else + echo "Encode has not changed. Skipping Encode module build." + fi + + - name: Generate Docker image tag + id: docker-tag + run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + + - name: Build and push Docker image + if: ${{ steps.check-encode.outputs.changed == 'Encode' || github.event_name == 'push' }} + uses: docker/build-push-action@v2 + with: + context: ./Encode + push: true + tags: | + bskjon/media-processing--encode:latest + bskjon/media-processing--encode:${{ github.sha }} + bskjon/media-processing--encode:${{ github.ref }} + bskjon/media-processing--encode:${{ steps.docker-tag.outputs.tag }} + + build-reader: + needs: build-commoncode + if: ${{ needs.build-commoncode.result == 'success' && (needs.build-commoncode.outputs.changed != 'CommonCode' || github.event_name == 'push') }} + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check if Reader has changed + id: check-reader + run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Reader) + + - name: Build Reader module + run: | + if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ]; then + cd Reader + ./gradlew build + else + echo "Reader has not changed. Skipping Reader module build." + fi + + - name: Generate Docker image tag + id: docker-tag + run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + + - name: Build and push Docker image + if: ${{ steps.check-reader.outputs.changed == 'Reader' || github.event_name == 'push' }} + uses: docker/build-push-action@v2 + with: + context: ./Reader + push: true + tags: | + bskjon/media-processing--reader:latest + bskjon/media-processing--reader:${{ github.sha }} + bskjon/media-processing--reader:${{ github.ref }} + bskjon/media-processing--reader:${{ steps.docker-tag.outputs.tag }} + + build-pymetadata: + if: ${{ github.event_name == 'push' }} + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check if pyMetadata has changed + id: check-pymetadata + run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} pyMetadata) + + - name: Build pyMetadata module + run: | + if [ "${{ steps.check-pymetadata.outputs.changed }}" == "pyMetadata" ] || [ "${{ github.event_name }}" == "push" ]; then + cd pyMetadata + # Add the necessary build steps for your Python module here + else + echo "pyMetadata has not changed. Skipping pyMetadata module build." + fi + + - name: Generate Docker image tag + id: docker-tag + run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + + - name: Build and push Docker image + if: ${{ steps.check-pymetadata.outputs.changed == 'pyMetadata' || github.event_name == 'push' }} + uses: docker/build-push-action@v2 + with: + context: ./pyMetadata + push: true + tags: | + bskjon/media-processing--pymetadata:latest + bskjon/media-processing--pymetadata:${{ github.sha }} + bskjon/media-processing--pymetadata:${{ github.ref }} + bskjon/media-processing--pymetadata:${{ steps.docker-tag.outputs.tag }} From 0e7a656cd8ea87da7005976f97504da3cca93f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:22:38 +0200 Subject: [PATCH 2/8] Update main.yml --- .github/workflows/main.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0f14327e..16892433 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -69,7 +69,13 @@ jobs: - name: Check if Reader has changed id: check-reader run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Reader) - + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_HUB_NAME }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + - name: Build Reader module run: | if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ]; then @@ -106,7 +112,13 @@ jobs: - name: Check if pyMetadata has changed id: check-pymetadata run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} pyMetadata) - + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_HUB_NAME }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + - name: Build pyMetadata module run: | if [ "${{ steps.check-pymetadata.outputs.changed }}" == "pyMetadata" ] || [ "${{ github.event_name }}" == "push" ]; then From aa8cc2f440ff207c9efa0f3f41fcba13a3fc778c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:23:15 +0200 Subject: [PATCH 3/8] Update main.yml --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 16892433..333eab7c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,6 +7,7 @@ on: pull_request: branches: - main + workflow_dispatch: jobs: build-commoncode: From 092561ac08bc216f73fcfb6f405dce12521b140d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:25:06 +0200 Subject: [PATCH 4/8] Update main.yml --- .github/workflows/main.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 333eab7c..8d62932e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,10 @@ jobs: uses: actions/checkout@v2 - name: Build CommonCode - run: cd CommonCode && ./gradlew build + run: | + cd CommonCode + chmod +x ./gradlew + ./gradlew build build-encode: needs: build-commoncode @@ -37,6 +40,7 @@ jobs: run: | if [ "${{ steps.check-encode.outputs.changed }}" == "Encode" ] || [ "${{ github.event_name }}" == "push" ]; then cd Encode + chmod +x ./gradlew ./gradlew build else echo "Encode has not changed. Skipping Encode module build." @@ -81,6 +85,7 @@ jobs: run: | if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ]; then cd Reader + chmod +x ./gradlew ./gradlew build else echo "Reader has not changed. Skipping Reader module build." From 14a773622282a9d67ef2a26c7ec30d14b08a56e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:35:28 +0200 Subject: [PATCH 5/8] Update main.yml --- .github/workflows/main.yml | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8d62932e..1d37e5ee 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,9 +25,10 @@ jobs: build-encode: needs: build-commoncode - if: ${{ needs.build-commoncode.result == 'success' && (needs.build-commoncode.outputs.changed != 'CommonCode' || github.event_name == 'push') }} runs-on: ubuntu-latest + if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} + steps: - name: Checkout repository uses: actions/checkout@v2 @@ -44,6 +45,7 @@ jobs: ./gradlew build else echo "Encode has not changed. Skipping Encode module build." + exit 78 # Exit with a custom exit code to indicate skip fi - name: Generate Docker image tag @@ -51,7 +53,6 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image - if: ${{ steps.check-encode.outputs.changed == 'Encode' || github.event_name == 'push' }} uses: docker/build-push-action@v2 with: context: ./Encode @@ -64,9 +65,10 @@ jobs: build-reader: needs: build-commoncode - if: ${{ needs.build-commoncode.result == 'success' && (needs.build-commoncode.outputs.changed != 'CommonCode' || github.event_name == 'push') }} runs-on: ubuntu-latest + if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} + steps: - name: Checkout repository uses: actions/checkout@v2 @@ -75,12 +77,6 @@ jobs: id: check-reader run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Reader) - - name: Log in to Docker Hub - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 - with: - username: ${{ secrets.DOCKER_HUB_NAME }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} - - name: Build Reader module run: | if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ]; then @@ -89,6 +85,7 @@ jobs: ./gradlew build else echo "Reader has not changed. Skipping Reader module build." + exit 78 # Exit with a custom exit code to indicate skip fi - name: Generate Docker image tag @@ -96,7 +93,6 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image - if: ${{ steps.check-reader.outputs.changed == 'Reader' || github.event_name == 'push' }} uses: docker/build-push-action@v2 with: context: ./Reader @@ -108,7 +104,7 @@ jobs: bskjon/media-processing--reader:${{ steps.docker-tag.outputs.tag }} build-pymetadata: - if: ${{ github.event_name == 'push' }} + if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} runs-on: ubuntu-latest steps: @@ -119,12 +115,6 @@ jobs: id: check-pymetadata run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} pyMetadata) - - name: Log in to Docker Hub - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 - with: - username: ${{ secrets.DOCKER_HUB_NAME }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} - - name: Build pyMetadata module run: | if [ "${{ steps.check-pymetadata.outputs.changed }}" == "pyMetadata" ] || [ "${{ github.event_name }}" == "push" ]; then @@ -132,6 +122,7 @@ jobs: # Add the necessary build steps for your Python module here else echo "pyMetadata has not changed. Skipping pyMetadata module build." + exit 78 # Exit with a custom exit code to indicate skip fi - name: Generate Docker image tag @@ -139,7 +130,6 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image - if: ${{ steps.check-pymetadata.outputs.changed == 'pyMetadata' || github.event_name == 'push' }} uses: docker/build-push-action@v2 with: context: ./pyMetadata From ef4800af0a323d8d6cc20a7a4ec3187c44645e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:38:51 +0200 Subject: [PATCH 6/8] Update main.yml --- .github/workflows/main.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1d37e5ee..e83c39d4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,14 +38,16 @@ jobs: run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Encode) - name: Build Encode module + id: build-encode run: | - if [ "${{ steps.check-encode.outputs.changed }}" == "Encode" ] || [ "${{ github.event_name }}" == "push" ]; then + if [ "${{ steps.check-encode.outputs.changed }}" == "Encode" ] || [ "${{ github.event_name }}" == "push" ] || [ "${{ github.event_name }}" == "workflow_dispatch" ]; then cd Encode chmod +x ./gradlew ./gradlew build + echo "Build completed" else echo "Encode has not changed. Skipping Encode module build." - exit 78 # Exit with a custom exit code to indicate skip + echo "::set-output name=job_skipped::true" fi - name: Generate Docker image tag @@ -53,6 +55,7 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image + if: steps.build-encode.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch' uses: docker/build-push-action@v2 with: context: ./Encode @@ -78,14 +81,16 @@ jobs: run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} Reader) - name: Build Reader module + id: build-reader run: | - if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ]; then + if [ "${{ steps.check-reader.outputs.changed }}" == "Reader" ] || [ "${{ github.event_name }}" == "push" ] || [ "${{ github.event_name }}" == "workflow_dispatch" ]; then cd Reader chmod +x ./gradlew ./gradlew build + echo "Build completed" else echo "Reader has not changed. Skipping Reader module build." - exit 78 # Exit with a custom exit code to indicate skip + echo "::set-output name=job_skipped::true" fi - name: Generate Docker image tag @@ -93,6 +98,7 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image + if: steps.build-reader.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch' uses: docker/build-push-action@v2 with: context: ./Reader @@ -116,13 +122,15 @@ jobs: run: echo ::set-output name=changed::$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} pyMetadata) - name: Build pyMetadata module + id: build-pymetadata run: | - if [ "${{ steps.check-pymetadata.outputs.changed }}" == "pyMetadata" ] || [ "${{ github.event_name }}" == "push" ]; then + if [ "${{ steps.check-pymetadata.outputs.changed }}" == "pyMetadata" ] || [ "${{ github.event_name }}" == "push" ] || [ "${{ github.event_name }}" == "workflow_dispatch" ]; then cd pyMetadata # Add the necessary build steps for your Python module here + echo "Build completed" else echo "pyMetadata has not changed. Skipping pyMetadata module build." - exit 78 # Exit with a custom exit code to indicate skip + echo "::set-output name=job_skipped::true" fi - name: Generate Docker image tag @@ -130,6 +138,7 @@ jobs: run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) - name: Build and push Docker image + if: steps.build-pymetadata.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch' uses: docker/build-push-action@v2 with: context: ./pyMetadata From bdde7f488e4fef3cee05f4cfa225a2d35acbc62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:44:48 +0200 Subject: [PATCH 7/8] Update main.yml --- .github/workflows/main.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e83c39d4..f6075887 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -63,7 +63,6 @@ jobs: tags: | bskjon/media-processing--encode:latest bskjon/media-processing--encode:${{ github.sha }} - bskjon/media-processing--encode:${{ github.ref }} bskjon/media-processing--encode:${{ steps.docker-tag.outputs.tag }} build-reader: @@ -106,7 +105,6 @@ jobs: tags: | bskjon/media-processing--reader:latest bskjon/media-processing--reader:${{ github.sha }} - bskjon/media-processing--reader:${{ github.ref }} bskjon/media-processing--reader:${{ steps.docker-tag.outputs.tag }} build-pymetadata: @@ -146,5 +144,4 @@ jobs: tags: | bskjon/media-processing--pymetadata:latest bskjon/media-processing--pymetadata:${{ github.sha }} - bskjon/media-processing--pymetadata:${{ github.ref }} bskjon/media-processing--pymetadata:${{ steps.docker-tag.outputs.tag }} From 564fffecc33ad4f094c852da44bc90af0ba91d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 16 Jul 2023 16:52:13 +0200 Subject: [PATCH 8/8] Update main.yml --- .github/workflows/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f6075887..24a9d345 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,8 @@ jobs: - name: Generate Docker image tag id: docker-tag - run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + run: echo "::set-output name=tag::$(date -u +'%Y.%m.%d')-$(uuidgen | cut -c 1-8)" + - name: Build and push Docker image if: steps.build-encode.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch' @@ -94,7 +95,7 @@ jobs: - name: Generate Docker image tag id: docker-tag - run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + run: echo "::set-output name=tag::$(date -u +'%Y.%m.%d')-$(uuidgen | cut -c 1-8)" - name: Build and push Docker image if: steps.build-reader.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch' @@ -133,7 +134,7 @@ jobs: - name: Generate Docker image tag id: docker-tag - run: echo ::set-output name=tag::$(date -u +"%Y.%m.%d")-$(uuidgen) + run: echo "::set-output name=tag::$(date -u +'%Y.%m.%d')-$(uuidgen | cut -c 1-8)" - name: Build and push Docker image if: steps.build-pymetadata.outputs.job_skipped != 'true' || github.event_name == 'workflow_dispatch'