Skip to content

ci: code coverage nativo (Cobertura) + dependabot (gomod/actions/docker) #2

ci: code coverage nativo (Cobertura) + dependabot (gomod/actions/docker)

ci: code coverage nativo (Cobertura) + dependabot (gomod/actions/docker) #2

Workflow file for this run

name: Go CLI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
lint-and-test:
runs-on: ubuntu-latest
permissions:
contents: read
code-quality: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: arduino/setup-task@v2
with:
version: 3.x
- run: task lint
- run: task coverage
- run: task test:integration
- run: task build
- run: ./devcontainer --version
# Convierte el perfil de Go (coverage.out) a Cobertura XML para la
# feature nativa de Code Quality de GitHub.
- name: Convert coverage to Cobertura XML
run: |
go install github.com/boumenot/gocover-cobertura@latest
gocover-cobertura < coverage.out > coverage.xml
- name: Upload coverage report
uses: actions/upload-code-coverage@v1
with:
file: coverage.xml
language: Go
label: code-coverage/go
- uses: actions/upload-artifact@v4
if: always()
with:
name: unit-coverage
path: coverage.out
if-no-files-found: error
e2e:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: arduino/setup-task@v2
with:
version: 3.x
- run: task test:e2e
- if: always()
run: task clean
# Hermetic parity gate: read-configuration golden comparison + the contract
# lane of the parity matrix (flag validation / output contract, no Docker).
parity:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-node@v4
with:
node-version: "20"
- uses: arduino/setup-task@v2
with:
version: 3.x
- run: task reference
- run: task parity:contract
- run: task parity:network
- if: always()
run: |
mkdir -p artifacts
git -C reference rev-parse HEAD > artifacts/reference-commit.txt
- uses: actions/upload-artifact@v4
if: always()
with:
name: parity-contract-network-v0.88.0
path: artifacts/
if-no-files-found: error
# Runtime lane of the parity matrix (creates real containers via Docker).
# ubuntu-latest ships with Docker preinstalled.
parity-runtime:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-node@v4
with:
node-version: "20"
- uses: arduino/setup-task@v2
with:
version: 3.x
- run: task reference
- run: task parity:runtime
- if: always()
run: |
mkdir -p artifacts
git -C reference rev-parse HEAD > artifacts/reference-commit.txt
- uses: actions/upload-artifact@v4
if: always()
with:
name: parity-runtime-v0.88.0
path: artifacts/
if-no-files-found: error
- if: always()
run: task clean
cross-compile:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: arduino/setup-task@v2
with:
version: 3.x
- run: task build:cross
- run: ls -lh dist/