instruction: Create a GitHub Actions workflow for CI/CD automation with automated testing
output: ## scorecards.yml
  
  **Repository:** helm/helm
  **File Type:** Github Workflow
  **Purpose:** Production configuration from helm project
  
  ```yaml
  name: Scorecard supply-chain security
  on:
    # For Branch-Protection check. Only the default branch is supported. See
    # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
    branch_protection_rule:
    # To guarantee Maintained check is occasionally updated. See
    # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
    schedule:
      - cron: '25 7 * * 0'
    push:
      branches: [ "main" ]
  
  # Declare default permissions as read only.
  permissions: read-all
  
  jobs:
    analysis:
      name: Scorecard analysis
      runs-on: ubuntu-latest
      permissions:
        # Needed to upload the results to code-scanning dashboard.
        security-events: write
        # Needed to publish results and get a badge (see publish_results below).
        id-token: write
        # Uncomment the permissions below if installing in a private repository.
        # contents: read
        # actions: read
  
      steps:
        - name: "Checkout code"
          uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
          with:
            persist-credentials: false
  
        - name: "Run analysis"
          uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
          with:
            results_file: results.sarif
            results_format: sarif
            # (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
            # - you want to enable the Branch-Protection check on a *public* repository, or
            # - you are installing Scorecard on a *private* repository
            # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
            # repo_token: ${{ secrets.SCORECARD_TOKEN }}
  
            # Public repositories:
            #   - Publish results to OpenSSF REST API for easy access by consumers
            #   - Allows the repository to include the Scorecard badge.
            #   - See https://github.com/ossf/scorecard-action#publishing-results.
            # For private repositories:
            #   - `publish_results` will always be set to `false`, regardless
            #     of the value entered here.
            publish_results: true
  
        # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
        # format to the repository Actions tab.
        - name: "Upload artifact"
          uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
          with:
            name: SARIF file
            path: results.sarif
            retention-days: 5
  
        # Upload the results to GitHub's code scanning dashboard (optional).
        # Commenting out will disable upload of results to your repo's Code Scanning dashboard
        - name: "Upload to code-scanning"
          uses: github/codeql-action/upload-sarif@v3
          with:
            sarif_file: results.sarif
  
  ```
  
  This GitHub Actions workflow demonstrates production CI/CD practices including automated testing, building, and deployment.