name: Build Feature on: workflow_call: inputs: bats-image: required: false type: string default: bats/bats:latest cucumber-node-image: required: false type: string default: node:20 jobs: bats: runs-on: ubuntu-latest env: PAGES_HOST: ci-reports.helm-dev.keskikuja.site steps: - uses: actions/checkout@v4 - name: Run bats tests continue-on-error: true run: | mkdir -p "reports/${GITHUB_SHA:0:8}/bats" docker run --rm -v "$PWD:/code" ${{ inputs.bats-image }} /code/tests/*.bats > "reports/${GITHUB_SHA:0:8}/bats/results.txt" 2>&1 || true if ls tests/*.bats 1> /dev/null 2>&1; then docker run --rm -v "$PWD:/code" ${{ inputs.bats-image }} --formatter junit /code/tests/*.bats > "reports/${GITHUB_SHA:0:8}/bats/junit.xml" 2>&1 || true fi cucumber: runs-on: ubuntu-latest env: PAGES_HOST: ci-reports.helm-dev.keskikuja.site steps: - uses: actions/checkout@v4 - name: Run cucumber tests continue-on-error: true run: | mkdir -p "reports/${GITHUB_SHA:0:8}/cucumber" npx cucumber-js \ --format json:"reports/${GITHUB_SHA:0:8}/cucumber/report.json" \ --format html:"reports/${GITHUB_SHA:0:8}/cucumber/index.html" 2>&1 || \ npx cucumber-js \ --format json:"reports/${GITHUB_SHA:0:8}/cucumber/report.json" build: runs-on: ubuntu-latest needs: [bats, cucumber] env: PAGES_HOST: ci-reports.helm-dev.keskikuja.site GIT_PAGES_PUBLISH_URL: https://ci-reports.helm-dev.keskikuja.site GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} steps: - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: niko/gitea-ci-library path: .ci - name: Generate report index run: | SHA8="${GITHUB_SHA:0:8}" BATS_PASS=$(grep -c 'ok' "reports/${SHA8}/bats/results.txt" 2>/dev/null || echo 0) BATS_FAIL=$(grep -c 'not ok' "reports/${SHA8}/bats/results.txt" 2>/dev/null || echo 0) CUCUMBER_PASS=$(jq '.summary.passed // 0' "reports/${SHA8}/cucumber/report.json" 2>/dev/null || echo 0) CUCUMBER_FAIL=$(jq '.summary.failed // 0' "reports/${SHA8}/cucumber/report.json" 2>/dev/null || echo 0) { echo "
" echo "${SHA8}Commit: ${GITHUB_SHA}
Branch: ${GITHUB_REF_NAME}
Run: ${GITHUB_RUN_ID}
| Suite | Passed | Failed | Report |
|---|---|---|---|
| Bats | ${BATS_PASS} | ${BATS_FAIL} | " echo "results.txt" echo " | junit.xml |
| Cucumber | ${CUCUMBER_PASS} | ${CUCUMBER_FAIL} | " echo "report" echo " | json |