Задать вопрос
@Krembi

Как правильно вынести job(sonarqube) в отдельный reusable workflow?

Добрый день, я столкнулся с проблемой при попытке интегрировать sonarqube в свои репозитории github actions. Получается Sonarqube по умолчанию мне выдал код который я должен вставить в workflow репозитория(вставил всё нормально работает).Создал reusable workflow в отдельном репозитории, переделав код sonar'а доделал его. Но при попытке запуске основного workflow, выходит ошибка:
"Error: .github#L1
reusable workflows should be referenced at the top-level `jobs.*.uses' key, not within steps".

Отправляю мой reusable workflow:
name: Reusable Workflow

on:
  workflow_call:
    secrets:
      SONAR_PROJECT_KEY:
        required: true
      SONAR_TOKEN:
        required: true
      GITHUB_TOKEN:
        required: true

jobs:
  build:
    runs-on: self-hosted
    if: github.event_name == 'pull_request'
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      with:
        persist-credentials: false
        fetch-depth: 0

    - name: Set up .NET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: '8.x'

    - name: Build
      if: success()
      run: dotnet build --configuration Release

    - name: Test
      if: success()
      run: dotnet test

    - name: Set up JDK
      if: success()
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '17'

    - name: Set NuGet Credentials
      env:
        GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
      run: |
        sed -i 's/%GITHUB_ACCESSTOKEN_ENV%/'"$GITHUB_TOKEN"'/' ./nuget.config

    - name: Cache SonarQube packages
      uses: actions/cache@v1
      with:
        path: ~\.sonar\cache
        key: ${{ runner.os }}-sonar
        restore-keys: ${{ runner.os }}-sonar

    - name: Cache SonarQube scanner
      id: cache-sonar-scanner
      uses: actions/cache@v1
      with:
        path: .\.sonar\scanner
        key: ${{ runner.os }}-sonar-scanner
        restore-keys: ${{ runner.os }}-sonar-scanner

    - name: Install SonarQube scanner
      if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
      shell: bash
      run: |
        mkdir -p ./.sonar/scanner
        dotnet tool update dotnet-sonarscanner --tool-path ./.sonar/scanner

    - name: Build and analyze
      shell: bash
      run: |
        ./.sonar/scanner/dotnet-sonarscanner begin /k:"${{ secrets.SONAR_PROJECT_KEY }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://somedomain.com"
        dotnet build
        ./.sonar/scanner/dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
Спасибо заранее
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Go-разработчик с нуля
    8 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик буткемп
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Как и написано в сообщении reusable workflows should be referenced at the top-level `jobs.*.uses' key, not within steps, его надо вставить как отдельный job.
reusable workflow не может быть step.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Казань
от 75 000 до 120 000 ₽
ITK academy Нижний Новгород
от 100 000 до 125 000 ₽