diff --git a/.github/workflows/backendtests.yml b/.github/workflows/backendtests.yml index bb4caee24..9d1ba9ba6 100644 --- a/.github/workflows/backendtests.yml +++ b/.github/workflows/backendtests.yml @@ -10,6 +10,7 @@ jobs: dropbox_secrets_available: '${{ steps.check_dropbox.outputs.available }}' azure_secrets_available: '${{ steps.check_azure.outputs.available }}' testcontainers_secrets_available: '${{ steps.check_testcontainers.outputs.available }}' + google_secrets_available: '${{ steps.check_google.outputs.available }}' steps: - id: check_s3 name: Check S3 secrets @@ -69,13 +70,29 @@ jobs: echo "available=false" >> $GITHUB_OUTPUT fi echo "Azure check completed" + + - id: check_google + name: Check Google secrets + shell: bash + run: | + echo "Starting Google secrets check..." + if [[ -n "${{ secrets.TESTCREDENTIAL_GOOGLEDRIVE_TOKEN }}" ]] && \ + [[ -n "${{ secrets.TESTCREDENTIAL_GOOGLEDRIVE_FOLDER }}" ]]; then + echo "All Google secrets found" + echo "available=true" >> $GITHUB_OUTPUT + else + echo "Missing some Google secrets" + echo "available=false" >> $GITHUB_OUTPUT + fi + echo "Google check completed" + - name: Debug Output shell: bash run: | echo "S3 Available: ${{ steps.check_s3.outputs.available }}" echo "Dropbox Available: ${{ steps.check_dropbox.outputs.available }}" - echo "Dropbox Available: ${{ steps.check_testcontainers.outputs.available }}" - + echo "TestContainers Available: ${{ steps.check_testcontainers.outputs.available }}" + echo "Google Available: ${{ steps.check_google.outputs.available }}" test_ftp: needs: check_secrets if: needs.check_secrets.outputs.testcontainers_secrets_available == 'true' @@ -191,7 +208,6 @@ jobs: dotnet test --no-build --filter="ClassName~AzureTests" --logger:"console;verbosity=detailed" LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln - test_webdav: needs: check_secrets if: needs.check_secrets.outputs.testcontainers_secrets_available == 'true' @@ -306,4 +322,41 @@ jobs: run: >- dotnet test --no-build --filter="ClassName~SshTests" --logger:"console;verbosity=detailed" - LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln \ No newline at end of file + LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln + test_googledrive: + needs: check_secrets + if: needs.check_secrets.outputs.google_secrets_available == 'true' + name: Google Drive Tests + runs-on: '${{ matrix.os }}' + strategy: + max-parallel: 1 + fail-fast: false + matrix: + os: + - ubuntu-latest + - windows-latest + - macos-latest + steps: + - name: Set up .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.x + - name: Checkout source + uses: actions/checkout@v4 + - name: Restore NuGet dependencies + run: >- + dotnet restore + LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln + - name: Build project + run: >- + dotnet build --no-restore + LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln + - name: Run Dropbox tests + env: + TESTCREDENTIAL_GOOGLEDRIVE_TOKEN: '${{ secrets.TESTCREDENTIAL_GOOGLEDRIVE_TOKEN }}' + TESTCREDENTIAL_GOOGLEDRIVE_FOLDER: '${{ secrets.TESTCREDENTIAL_GOOGLEDRIVE_FOLDER }}' + run: >- + dotnet test --no-build --filter="ClassName~GoogleDriveTests" + --logger:"console;verbosity=detailed" + LiveTests/Duplicati.Backend.Tests/Duplicati.Backend.Tests.sln + \ No newline at end of file