Test data upload script, triggered by bo changes or schedule #2408
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Triggered on a schedule and manually via a dispatch event. | |
| # This workflow test if the script is still working with the latest bo versions ('test'). | |
| # It also tests custom definable older script versions to determine if they still work | |
| name: Test data upload script, triggered by bo changes or schedule | |
| on: | |
| schedule: | |
| # Executes this workflow on a schedule (always uses the latest version on the default branch | |
| # (see: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)) | |
| # Execution on weekdays at 02:27 UTC | |
| - cron: "27 2 * * 1-5" | |
| workflow_dispatch: | |
| jobs: | |
| # Short test on windows using PS7 | |
| integration_test_short_windows_ps7: | |
| name: Short, Windows, PS7, version '${{ matrix.version }}' | |
| runs-on: windows-2022 | |
| strategy: | |
| matrix: | |
| version: | |
| - ${{fromJson(vars.VERSION_MATRIX)}} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version }} | |
| - name: Status | |
| run: | | |
| echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | |
| echo "The ${{ github.repository }} repository has been cloned to the runner." | |
| echo "The workflow is now ready to test your code on the runner." | |
| - name: Execute test | |
| shell: pwsh | |
| run: | | |
| echo "Test CSV import" | |
| ./business_objects_upload/test/TestWrapperScript.ps1 -short -dbType csv -baseUri ${{ secrets.BO_BASE_URI_TEST }} -apiKey "${{ secrets.BO_API_KEY_TEST }}" -configTemplatePath ./business_objects_upload/test/csv/ScriptConfig.template.json | |
| # Short test on windows using PS5 | |
| integration_test_short_windows_ps5: | |
| name: Short, Windows, PS5, version '${{ matrix.version }}' | |
| runs-on: windows-2022 | |
| strategy: | |
| matrix: | |
| version: | |
| - ${{fromJson(vars.VERSION_MATRIX)}} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version }} | |
| - name: Status | |
| run: | | |
| echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | |
| echo "The ${{ github.repository }} repository has been cloned to the runner." | |
| echo "The workflow is now ready to test your code on the runner." | |
| - name: Execute test | |
| shell: powershell | |
| run: | | |
| echo "Test CSV import" | |
| ./business_objects_upload/test/TestWrapperScript.ps1 -short -dbType csv -baseUri ${{ secrets.BO_BASE_URI_TEST }} -apiKey "${{ secrets.BO_API_KEY_TEST }}" -configTemplatePath ./business_objects_upload/test/csv/ScriptConfig.template.json | |
| # Long test on ubuntu using PS7 | |
| integration_test_short_ubuntu_ps7_mssql: | |
| name: Short, Ubuntu, PS7, mssql data source, version '${{ matrix.version }}' | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| version: | |
| - ${{fromJson(vars.VERSION_MATRIX)}} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version }} | |
| - name: Status | |
| run: | | |
| echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | |
| echo "The ${{ github.repository }} repository has been cloned to the runner." | |
| echo "The workflow is now ready to test your code on the runner." | |
| - name: Execute test | |
| shell: pwsh | |
| # sqlcmd must be installed manually as it is not pre-installed on the ubuntu runner 24.04 (see https://github.com/microsoft/go-sqlcmd/issues/532) | |
| run: | | |
| echo "Test MSSQL import" | |
| echo "Installing mssql tools" | |
| curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc | |
| sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/prod.list)" | |
| sudo apt-get update | |
| sudo apt-get install sqlcmd | |
| ./.github/workflows/setup-mssql-db.ps1 -dbPassword ${{ secrets.MSSQL_DB_PASSWORD_TEST }} | |
| ./business_objects_upload/test/TestWrapperScript.ps1 -dbPassword ${{ secrets.MSSQL_DB_PASSWORD_TEST }} -dbType mssql -baseUri ${{ secrets.BO_BASE_URI_TEST }} -apiKey "${{ secrets.BO_API_KEY_TEST }}" -configTemplatePath ./business_objects_upload/test/mssql/ScriptConfig.template.json | |
| # Long test on ubuntu using PS7 | |
| integration_test_long_ubuntu_ps7: | |
| name: Long, Ubuntu, PS7, version, batching enabled '${{ matrix.version }}' | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| version: | |
| - ${{fromJson(vars.VERSION_MATRIX)}} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version }} | |
| - name: Status | |
| run: | | |
| echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | |
| echo "The ${{ github.repository }} repository has been cloned to the runner." | |
| echo "The workflow is now ready to test your code on the runner." | |
| - name: Execute test | |
| shell: pwsh | |
| run: | | |
| echo "Test CSV import" | |
| ./business_objects_upload/test/TestWrapperScript.ps1 -dbType csv -baseUri ${{ secrets.BO_BASE_URI_TEST }} -apiKey "${{ secrets.BO_API_KEY_TEST }}" -configTemplatePath ./business_objects_upload/test/csv/ScriptConfig.template.json | |
| # Short test on ubuntu using PS7 | |
| integration_test_short_ubuntu_ps7_no_batching: | |
| name: Short, Ubuntu, PS7, version, batching disabled '${{ matrix.version }}' | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| version: | |
| - ${{fromJson(vars.VERSION_MATRIX)}} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ matrix.version }} | |
| - name: Status | |
| run: | | |
| echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | |
| echo "The ${{ github.repository }} repository has been cloned to the runner." | |
| echo "The workflow is now ready to test your code on the runner." | |
| - name: Execute test | |
| shell: pwsh | |
| run: | | |
| echo "Test CSV import" | |
| ./business_objects_upload/test/TestWrapperScript.ps1 -short -noBatching -dbType csv -baseUri ${{ secrets.BO_BASE_URI_TEST }} -apiKey "${{ secrets.BO_API_KEY_TEST }}" -configTemplatePath ./business_objects_upload/test/csv/ScriptConfig.template.json | |
| notify-teams: | |
| runs-on: ubuntu-latest | |
| if: ${{ always() && contains(join(needs.*.result, ','), 'failure') }} | |
| needs: | |
| [ | |
| integration_test_long_ubuntu_ps7, | |
| integration_test_short_windows_ps5, | |
| integration_test_short_windows_ps7, | |
| integration_test_short_ubuntu_ps7_mssql, | |
| integration_test_short_ubuntu_ps7_no_batching, | |
| ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Sending teams notification | |
| run: | | |
| chmod +x ./.github/workflows/notification.sh | |
| echo "Sending teams notification" | |
| ./.github/workflows/notification.sh "${{ secrets.POWERAUTOMATE_WEBHOOK_URL }}" |