From fb70cd7d376dc6580a8231d25bc0cf30e9c05341 Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:16:02 +0100 Subject: [PATCH 1/8] :recycle: harmonize github CI --- .../{publish.yml => _publish-code.yml} | 6 ++--- .../workflows/{docs.yml => _publish-docs.yml} | 10 ++++---- .../{sync-readme.yml => _publish-guide.yml} | 7 ++---- .../{linting.yml => _static-analysis.yml} | 2 +- ...ode-samples.yml => _test-code-samples.yml} | 6 +---- ...ration-test.yml => _test-integrations.yml} | 24 +++++++++++++++---- .../workflows/{test.yml => _test-units.yml} | 8 ++++--- .github/workflows/cron.yml | 10 ++++++++ .github/workflows/publish-release.yml | 17 +++++++++++++ .github/workflows/pull-request.yml | 24 +++++++++++++++++++ .github/workflows/push-main-branch.yml | 17 +++++++++++++ 11 files changed, 104 insertions(+), 27 deletions(-) rename .github/workflows/{publish.yml => _publish-code.yml} (90%) rename .github/workflows/{docs.yml => _publish-docs.yml} (78%) rename .github/workflows/{sync-readme.yml => _publish-guide.yml} (72%) rename .github/workflows/{linting.yml => _static-analysis.yml} (96%) rename .github/workflows/{test-code-samples.yml => _test-code-samples.yml} (85%) rename .github/workflows/{integration-test.yml => _test-integrations.yml} (68%) rename .github/workflows/{test.yml => _test-units.yml} (91%) create mode 100644 .github/workflows/cron.yml create mode 100644 .github/workflows/publish-release.yml create mode 100644 .github/workflows/pull-request.yml create mode 100644 .github/workflows/push-main-branch.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/_publish-code.yml similarity index 90% rename from .github/workflows/publish.yml rename to .github/workflows/_publish-code.yml index 97ccc4cd..c67558c7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/_publish-code.yml @@ -1,8 +1,8 @@ name: Publish on: - release: - types: [ published ] + workflow_call: + workflow_dispatch: jobs: linting: @@ -16,7 +16,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "2.7" + ruby-version: "3.0" bundler-cache: true - name: Set credentials diff --git a/.github/workflows/docs.yml b/.github/workflows/_publish-docs.yml similarity index 78% rename from .github/workflows/docs.yml rename to .github/workflows/_publish-docs.yml index 687d6229..247a5617 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/_publish-docs.yml @@ -1,10 +1,10 @@ +# +# Publish Documentation to GitHub pages. +# name: Publish Documentation on: - release: - types: [ published ] - - # Allows running this workflow manually from the Actions tab + workflow_call: workflow_dispatch: jobs: @@ -25,7 +25,7 @@ jobs: bundle exec rake doc - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs/_build diff --git a/.github/workflows/sync-readme.yml b/.github/workflows/_publish-guide.yml similarity index 72% rename from .github/workflows/sync-readme.yml rename to .github/workflows/_publish-guide.yml index c3814875..c6ed9276 100644 --- a/.github/workflows/sync-readme.yml +++ b/.github/workflows/_publish-guide.yml @@ -1,11 +1,8 @@ -name: Sync `documentation` directory to ReadMe +name: Publish Guide to readme.com -# Run workflow for every push to the `main` branch on: + workflow_call: workflow_dispatch: - release: - branches: - - main jobs: sync: diff --git a/.github/workflows/linting.yml b/.github/workflows/_static-analysis.yml similarity index 96% rename from .github/workflows/linting.yml rename to .github/workflows/_static-analysis.yml index 241e321e..27963d31 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/_static-analysis.yml @@ -4,7 +4,7 @@ name: Static Analysis on: - - push + workflow_call: jobs: linting: diff --git a/.github/workflows/test-code-samples.yml b/.github/workflows/_test-code-samples.yml similarity index 85% rename from .github/workflows/test-code-samples.yml rename to .github/workflows/_test-code-samples.yml index debb61d0..29afe279 100644 --- a/.github/workflows/test-code-samples.yml +++ b/.github/workflows/_test-code-samples.yml @@ -1,11 +1,7 @@ name: Test Code Samples on: - pull_request: - schedule: - - cron: '0 0 * * *' - - # Allow running this workflow manually from the Actions tab + workflow_call: workflow_dispatch: jobs: diff --git a/.github/workflows/integration-test.yml b/.github/workflows/_test-integrations.yml similarity index 68% rename from .github/workflows/integration-test.yml rename to .github/workflows/_test-integrations.yml index bae1da78..839233c8 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/_test-integrations.yml @@ -1,25 +1,29 @@ # -# Run Integration tests. +# Run integration tests. # name: Integration Tests on: - - push + workflow_call: jobs: - tests: - name: Test ${{ matrix.os }}, Ruby ${{ matrix.ruby }} + integration-tests: + name: Run Integration Tests + timeout-minutes: 30 runs-on: ${{ matrix.os }} strategy: + max-parallel: 3 matrix: os: - - "ubuntu-22.04" + - "ubuntu-24.04" + - "macos-latest" ruby: - "2.6" - "2.7" - "3.0" - "3.1" - "3.2" + - "3.3" steps: - uses: actions/checkout@v4 with: @@ -54,3 +58,13 @@ jobs: WORKFLOW_ID: ${{ secrets.WORKFLOW_ID_SE_TESTS }} run: | bundle exec rake integration + + - name: Notify Slack Action on Failure + uses: ravsamhq/notify-slack-action@2.3.0 + if: ${{ always() && github.ref_name == 'main' }} + with: + status: ${{ job.status }} + notify_when: "failure" + notification_title: "[Ruby] Integration test '{workflow}' is failing" + env: + SLACK_WEBHOOK_URL: ${{ secrets.PRODUCTION_ISSUES_SLACK_HOOK_URL }} diff --git a/.github/workflows/test.yml b/.github/workflows/_test-units.yml similarity index 91% rename from .github/workflows/test.yml rename to .github/workflows/_test-units.yml index e5a6cfc1..07dc9568 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/_test-units.yml @@ -4,17 +4,18 @@ name: Tests on: - - push + workflow_call: jobs: tests: - name: Test ${{ matrix.os }}, Ruby ${{ matrix.ruby }} + name: Run Unit Tests + timeout-minutes: 30 runs-on: ${{ matrix.os }} strategy: matrix: os: + - "ubuntu-24.04" - "ubuntu-22.04" - - "ubuntu-20.04" - "macos-latest" ruby: - "2.6" @@ -22,6 +23,7 @@ jobs: - "3.0" - "3.1" - "3.2" + - "3.3" steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml new file mode 100644 index 00000000..e7f14660 --- /dev/null +++ b/.github/workflows/cron.yml @@ -0,0 +1,10 @@ +name: Crontab + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + test_code_samples: + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main + secrets: inherit diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 00000000..a1178aeb --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,17 @@ +name: Publish Release + +on: + release: + types: [ published ] + +jobs: + publish_docs: + uses: mindee/mindee-api-ruby/.github/workflows/_publish-docs.yml@main + secrets: inherit + publish_guide: + uses: mindee/mindee-api-ruby/.github/workflows/_publish-guide.yml@main + needs: publish_docs + secrets: inherit + publish_code: + uses: mindee/mindee-api-ruby/.github/workflows/_publish-code.yml@main + secrets: inherit diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..eb5822a7 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,24 @@ +name: Pull Request + +on: + pull_request: + +jobs: + static_analysis: + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main + test_units: + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main + needs: static_analysis + secrets: inherit + test_regressions: + uses: mindee/mindee-api-ruby/.github/workflows/_test-regressions.yml@main + needs: test_units + secrets: inherit + test_integrations: + uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@main + needs: test_units + secrets: inherit + test_code_samples: + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main + needs: test_units + secrets: inherit diff --git a/.github/workflows/push-main-branch.yml b/.github/workflows/push-main-branch.yml new file mode 100644 index 00000000..f2cf102d --- /dev/null +++ b/.github/workflows/push-main-branch.yml @@ -0,0 +1,17 @@ +name: Push Main Branch + +on: + push: + branches: + - main + +jobs: + static_analysis: + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main + test_units: + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main + needs: static_analysis + secrets: inherit + tag: + uses: mindee/client-lib-actions/.github/workflows/tag-version.yml@main + needs: test_units From 415055363a5cd439eb01dca94fc9c20b6c5ca04a Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:16:49 +0100 Subject: [PATCH 2/8] temp for test, to be reversed --- .github/workflows/cron.yml | 2 +- .github/workflows/publish-release.yml | 6 +++--- .github/workflows/pull-request.yml | 10 +++++----- .github/workflows/push-main-branch.yml | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index e7f14660..4f376d08 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -6,5 +6,5 @@ on: jobs: test_code_samples: - uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@harmonize-CI secrets: inherit diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index a1178aeb..302c2d9e 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -6,12 +6,12 @@ on: jobs: publish_docs: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-docs.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_publish-docs.yml@harmonize-CI secrets: inherit publish_guide: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-guide.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_publish-guide.yml@harmonize-CI needs: publish_docs secrets: inherit publish_code: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-code.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_publish-code.yml@harmonize-CI secrets: inherit diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index eb5822a7..6c5b8cfd 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -5,20 +5,20 @@ on: jobs: static_analysis: - uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@harmonize-CI test_units: - uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@harmonize-CI needs: static_analysis secrets: inherit test_regressions: - uses: mindee/mindee-api-ruby/.github/workflows/_test-regressions.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-regressions.yml@harmonize-CI needs: test_units secrets: inherit test_integrations: - uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@harmonize-CI needs: test_units secrets: inherit test_code_samples: - uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@harmonize-CI needs: test_units secrets: inherit diff --git a/.github/workflows/push-main-branch.yml b/.github/workflows/push-main-branch.yml index f2cf102d..aa9c6ea6 100644 --- a/.github/workflows/push-main-branch.yml +++ b/.github/workflows/push-main-branch.yml @@ -7,11 +7,11 @@ on: jobs: static_analysis: - uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@harmonize-CI test_units: - uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@harmonize-CI needs: static_analysis secrets: inherit tag: - uses: mindee/client-lib-actions/.github/workflows/tag-version.yml@main + uses: mindee/client-lib-actions/.github/workflows/tag-version.yml@harmonize-CI needs: test_units From dca763db5d3ce58157a1f1f8e6bd972bdfef79d1 Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:18:10 +0100 Subject: [PATCH 3/8] fix version for publish --- .github/workflows/_publish-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_publish-docs.yml b/.github/workflows/_publish-docs.yml index 247a5617..a078da11 100644 --- a/.github/workflows/_publish-docs.yml +++ b/.github/workflows/_publish-docs.yml @@ -17,7 +17,7 @@ jobs: - name: set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.1" + ruby-version: "2.7" bundler-cache: true - name: Analyse the code with Rubocop From aae3adfc2f5c71e757ab6b0f27f07efb63eeb386 Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:22:31 +0100 Subject: [PATCH 4/8] imanidiot --- .github/workflows/pull-request.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 6c5b8cfd..7ce1b71d 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -10,10 +10,6 @@ jobs: uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@harmonize-CI needs: static_analysis secrets: inherit - test_regressions: - uses: mindee/mindee-api-ruby/.github/workflows/_test-regressions.yml@harmonize-CI - needs: test_units - secrets: inherit test_integrations: uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@harmonize-CI needs: test_units From fc18b6bc5a01f2cfff82b11f07eea465681753fc Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:29:09 +0100 Subject: [PATCH 5/8] what, how does that even happen? --- .github/workflows/_test-units.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_test-units.yml b/.github/workflows/_test-units.yml index 07dc9568..68883011 100644 --- a/.github/workflows/_test-units.yml +++ b/.github/workflows/_test-units.yml @@ -39,7 +39,7 @@ jobs: if: runner.os == 'Linux' run: | sudo apt update - sudo apt-get install -y ghostscript + sudo apt-get install -y ghostscript imagemagick - name: Install Ghostscript and ImageMagick on macOS if: runner.os == 'macOS' From ecdac099d9bad12ff4927bcbf7f7635eb398a0b6 Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:31:02 +0100 Subject: [PATCH 6/8] revert code publish version --- .github/workflows/_publish-code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_publish-code.yml b/.github/workflows/_publish-code.yml index c67558c7..d0753e7f 100644 --- a/.github/workflows/_publish-code.yml +++ b/.github/workflows/_publish-code.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.0" + ruby-version: "2.7" bundler-cache: true - name: Set credentials From e75584d4840db63ce6cba4dbf74478e83e369737 Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:31:52 +0100 Subject: [PATCH 7/8] leave docs as they were --- .github/workflows/_publish-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_publish-docs.yml b/.github/workflows/_publish-docs.yml index a078da11..247a5617 100644 --- a/.github/workflows/_publish-docs.yml +++ b/.github/workflows/_publish-docs.yml @@ -17,7 +17,7 @@ jobs: - name: set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "2.7" + ruby-version: "3.1" bundler-cache: true - name: Analyse the code with Rubocop From ade10fd0b431cd951098dbbe78f371045f39944f Mon Sep 17 00:00:00 2001 From: sebastianMindee Date: Wed, 22 Jan 2025 16:53:41 +0100 Subject: [PATCH 8/8] restore main trigger --- .github/workflows/cron.yml | 2 +- .github/workflows/publish-release.yml | 6 +++--- .github/workflows/pull-request.yml | 8 ++++---- .github/workflows/push-main-branch.yml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 4f376d08..e7f14660 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -6,5 +6,5 @@ on: jobs: test_code_samples: - uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main secrets: inherit diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 302c2d9e..a1178aeb 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -6,12 +6,12 @@ on: jobs: publish_docs: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-docs.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_publish-docs.yml@main secrets: inherit publish_guide: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-guide.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_publish-guide.yml@main needs: publish_docs secrets: inherit publish_code: - uses: mindee/mindee-api-ruby/.github/workflows/_publish-code.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_publish-code.yml@main secrets: inherit diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 7ce1b71d..2690f22c 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -5,16 +5,16 @@ on: jobs: static_analysis: - uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main test_units: - uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main needs: static_analysis secrets: inherit test_integrations: - uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_test-integrations.yml@main needs: test_units secrets: inherit test_code_samples: - uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_test-code-samples.yml@main needs: test_units secrets: inherit diff --git a/.github/workflows/push-main-branch.yml b/.github/workflows/push-main-branch.yml index aa9c6ea6..f2cf102d 100644 --- a/.github/workflows/push-main-branch.yml +++ b/.github/workflows/push-main-branch.yml @@ -7,11 +7,11 @@ on: jobs: static_analysis: - uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_static-analysis.yml@main test_units: - uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@harmonize-CI + uses: mindee/mindee-api-ruby/.github/workflows/_test-units.yml@main needs: static_analysis secrets: inherit tag: - uses: mindee/client-lib-actions/.github/workflows/tag-version.yml@harmonize-CI + uses: mindee/client-lib-actions/.github/workflows/tag-version.yml@main needs: test_units