name: Build Feature on: workflow_call: jobs: pipeline: runs-on: ubuntu-latest env: GITEA_API_URL: https://gitea.app.keskikuja.site PAGES_HOST: ci-reports.helm-dev.keskikuja.site GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} 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: Install bats run: | sudo apt-get update sudo apt-get install -y bats - name: Bats tests continue-on-error: true run: | mkdir -p "reports/${GITHUB_SHA:0:8}/bats" bats --formatter junit tests/*.bats > "reports/${GITHUB_SHA:0:8}/bats/junit.xml" 2>&1 || \ bats tests/*.bats > "reports/${GITHUB_SHA:0:8}/bats/results.txt" 2>&1 - name: 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" - 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 "CI report ${SHA8}" echo "" echo "

CI report ${SHA8}

" echo "

Commit: ${GITHUB_SHA}
Branch: ${GITHUB_REF_NAME}
Run: ${GITHUB_RUN_ID}

" echo "" echo "" echo "" echo "" echo "" echo "
SuitePassedFailedReport
Bats${BATS_PASS}${BATS_FAIL}results.txt" echo " | junit.xml
Cucumber${CUCUMBER_PASS}${CUCUMBER_FAIL}report" echo " | json
" } > "reports/${SHA8}/index.html" - name: Set commit status run: | bash .ci/scripts/report-status.sh success \ "Tests passed" \ "https://${PAGES_HOST}/${GITHUB_REPOSITORY}/reports/${GITHUB_SHA:0:8}/" \ ci-tests - name: Publish reports run: | bash .ci/scripts/publish-git-pages.sh "reports/${GITHUB_SHA:0:8}"