fix: edit test.yml to allow gha to mark build as x
when tests fail
#831
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Testing | |
on: | |
workflow_dispatch: null | |
push: | |
branches: | |
- main | |
pull_request: null | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
env: | |
EXIT_STATUS: 0 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: 'stable' | |
- run: go version | |
- name: Run tidy | |
run: make tidy | |
- name: Run fmt | |
run: go fmt ./... | |
- name: Fail if changes | |
run: git diff-index --exit-code HEAD | |
- name: Run linter | |
run: make lint | |
- name: Update system packages | |
run: sudo apt-get update -y | |
- name: Install system deps | |
run: sudo apt-get install -y build-essential | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install Python deps | |
run: pip3 install requests wheel boto3 | |
- name: Set release version env | |
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
- name: Install go-junit-report | |
run: go install github.com/jstemmer/go-junit-report/v2@latest | |
- name: Run tests and save test report | |
run: | | |
timestamp=$(date +'%Y%m%d%H%M') | |
report_filename="${timestamp}_linodego_test_report.log" | |
if ! make ARGS="2>&1" testacc > "$report_filename"; then | |
echo "EXIT_STATUS=1" >> $GITHUB_ENV | |
fi | |
cat "$report_filename" | |
env: | |
SKIP_LINT: 1 | |
- name: Convert to XML Report | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
run: | | |
filename=$(ls | grep -E '^[0-9]{12}_linodego_test_report\.log') | |
if [ -f "$filename" ]; then | |
go_junit_report_dir=$(go env GOPATH)/bin | |
export PATH="$PATH:$go_junit_report_dir" | |
xml_filename=$(echo "$filename" | sed 's/\.log/.xml/') | |
go-junit-report -in "$filename" -iocopy -out "$xml_filename" | |
echo "Conversion from log to XML completed successfully." | |
else | |
echo "test report file not found." | |
exit 1 | |
fi | |
env: | |
GO111MODULE: on | |
- name: Add additional information to XML report | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
run: | | |
filename=$(ls | grep -E '^[0-9]{12}_linodego_test_report\.xml$') | |
python scripts/add_to_xml_test_report.py \ | |
--branch_name "${{ env.RELEASE_VERSION }}" \ | |
--gha_run_id "$GITHUB_RUN_ID" \ | |
--gha_run_number "$GITHUB_RUN_NUMBER" \ | |
--xmlfile "${filename}" | |
- name: Upload test results to bucket | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
env: | |
LINODE_CLI_OBJ_ACCESS_KEY: ${{ secrets.LINODE_CLI_OBJ_ACCESS_KEY }} | |
LINODE_CLI_OBJ_SECRET_KEY: ${{ secrets.LINODE_CLI_OBJ_SECRET_KEY }} | |
run: | | |
report_filename=$(ls | grep -E '^[0-9]{12}_linodego_test_report\.xml$') | |
python3 scripts/test_report_upload_script.py "${report_filename}" | |
- name: Test Execution Status Handler | |
run: | | |
if [[ "$EXIT_STATUS" != 0 ]]; then | |
echo "Test execution contains failure(s)" | |
exit $EXIT_STATUS | |
else | |
echo "Tests passed!" | |
fi |