在 github 操作工作流程中将空手道报告导出为工件

Karate report export as artifact in github actions workflow

我在空手道测试的 github 操作中有以下工作流 yml 文件,我正在尝试获取工件(空手道测试报告和日志文件),而不管测试结果如何,但这个特定的工作是 ignored/skipped 在工作流程中。

name: ci-mvn-build

on:
  push:
    branches: [ main ]
  schedule:
    - cron:  '0 0 * * 1-5'
  
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: git checkout
        uses: actions/checkout@v2
      - name: set up jdk 11
        uses: actions/setup-java@v2
        with:
          distribution: adopt
          java-version: 11
      - name: cache maven 
        uses: actions/cache@v1
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: Run a one-line script
        run: echo Starting the API testing!
      - name: test execution
        run: mvn --batch-mode clean test -DCLIENT_ID=${{ secrets.CLIENT_ID }} -DM_SCOPE=${{ secrets.M_SCOPE }} -DMG_SCOPE=${{ secrets.MG_SCOPE }} -DCLIENT_SECRET=${{ secrets.CLIENT_SECRET }} -DTENANT=${{ secrets.TENANT }}
      - name: Karate DSL Test Reports
        uses: actions/upload-artifact@v2
        with:
          name: Test Reports
          path: | 
            ./target/karate-reports/
            ./target/karate.log

工作流视图:

目标文件夹结构:

我错过了什么?

我刚刚发现包含 'always' 是诀窍。

总是: 始终 returns 为真,即使已取消。当严重故障阻止任务 运行 时,作业或步骤将不会 运行。例如,如果获取源失败。

例子 如果:${{总是()}}

更多详情:https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions

我的最终文件:

  - name: Karate DSL Test Reports
        uses: actions/upload-artifact@v2
        if: ${{ always() }}
        with:
          name: Test Reports
          path: | 
            ./target/karate-reports/
            ./target/karate.log