Skip to content

Commit

Permalink
Merge pull request #101 from cyber-dojo/refactor-generic-attestations…
Browse files Browse the repository at this point in the history
…-as-custom

Refactor generic attestations as custom attestations
  • Loading branch information
JonJagger authored Jan 10, 2025
2 parents 2a9ef64 + ed20097 commit c63c084
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 48 deletions.
68 changes: 24 additions & 44 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -219,19 +219,9 @@ jobs:
run:
docker image load --input ${{ env.IMAGE_TAR_FILENAME }}

- name: Run unit tests
- name: Run unit tests with metrics
run:
make test_server

- name: Check test metrics
id: test_metrics
run:
make metrics_test_server

- name: Check coverage metrics
id: coverage_metrics
run:
make metrics_coverage_server
make test_server metrics_test_server metrics_coverage_server

- name: Setup Kosli CLI
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
Expand All @@ -252,21 +242,21 @@ jobs:
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
env:
KOSLI_FINGERPRINT: ${{ needs.build-image.outputs.artifact_digest }}
run: |
KOSLI_COMPLIANT=$([ "${{ steps.test_metrics.outcome }}" == 'success' ] && echo true || echo false)
kosli attest generic \
--name=saver.unit-test-metrics \
--user-data="./reports/server/test_metrics.json"
run:
kosli attest custom
--attestation-data=./reports/server/test_metrics.json
--name=saver.unit-test-metrics
--type=test-metrics

- name: Attest coverage metrics to Kosli
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
env:
KOSLI_FINGERPRINT: ${{ needs.build-image.outputs.artifact_digest }}
run: |
KOSLI_COMPLIANT=$([ "${{ steps.coverage_metrics.outcome }}" == 'success' ] && echo true || echo false)
kosli attest generic \
--name=saver.unit-test-coverage-metrics \
--user-data="./reports/server/coverage_metrics.json"
run:
kosli attest custom
--attestation-data=./reports/server/coverage_metrics.json
--name=saver.unit-test-coverage-metrics
--type=coverage-metrics


integration-tests:
Expand All @@ -287,19 +277,9 @@ jobs:
run:
docker image load --input ${{ env.IMAGE_TAR_FILENAME }}

- name: Run integration tests
- name: Run integration tests with metrics
run:
make image_client test_client

- name: Check test metrics
id: test_metrics
run:
make metrics_test_client

- name: Check coverage metrics
id: coverage_metrics
run:
make metrics_coverage_client
make image_client test_client metrics_test_client metrics_coverage_client

- name: Setup Kosli CLI
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
Expand All @@ -320,21 +300,21 @@ jobs:
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
env:
KOSLI_FINGERPRINT: ${{ needs.build-image.outputs.artifact_digest }}
run: |
KOSLI_COMPLIANT=$([ "${{ steps.test_metrics.outcome }}" == 'success' ] && echo true || echo false)
kosli attest generic \
--name=saver.integration-test-metrics \
--user-data="./reports/client/test_metrics.json"
run:
kosli attest custom
--attestation-data=./reports/client/test_metrics.json
--name=saver.integration-test-metrics
--type=test-metrics

- name: Attest coverage metrics to Kosli
if: ${{ github.ref == 'refs/heads/main' && (success() || failure()) }}
env:
KOSLI_FINGERPRINT: ${{ needs.build-image.outputs.artifact_digest }}
run: |
KOSLI_COMPLIANT=$([ "${{ steps.coverage_metrics.outcome }}" == 'success' ] && echo true || echo false)
kosli attest generic \
--name=saver.integration-test-coverage-metrics \
--user-data="./reports/client/coverage_metrics.json"
run:
kosli attest custom
--attestation-data=./reports/client/coverage_metrics.json
--name=saver.integration-test-coverage-metrics
--type=coverage-metrics


snyk-container-scan:
Expand Down
8 changes: 4 additions & 4 deletions .kosli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ trail:
- name: unit-test
type: junit
- name: unit-test-metrics
type: generic
type: custom:test-metrics
- name: unit-test-coverage-metrics
type: generic
type: custom:coverage-metrics
- name: integration-test
type: junit
- name: integration-test-metrics
type: generic
type: custom:test-metrics
- name: integration-test-coverage-metrics
type: generic
type: custom:coverage-metrics

8 changes: 8 additions & 0 deletions test/client/config/simplecov_formatter_json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ def format(result)
missed: file_list.missed_branches,
}
}
# create single name entries for kosli-attest-custom
data["#{name}_lines_total"] = file_list.lines_of_code
data["#{name}_lines_covered"] = file_list.covered_lines
data["#{name}_lines_missed"] = file_list.missed_lines

data["#{name}_branches_total"] = file_list.total_branches
data["#{name}_branches_covered"] = file_list.covered_branches
data["#{name}_branches_missed"] = file_list.missed_branches
end
File.open(output_filepath, "w+") do |file|
file.print(JSON.pretty_generate(data))
Expand Down
8 changes: 8 additions & 0 deletions test/server/config/simplecov_formatter_json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ def format(result)
missed: file_list.missed_branches,
}
}
# create single name entries for kosli-attest-custom
data["#{name}_lines_total"] = file_list.lines_of_code
data["#{name}_lines_covered"] = file_list.covered_lines
data["#{name}_lines_missed"] = file_list.missed_lines

data["#{name}_branches_total"] = file_list.total_branches
data["#{name}_branches_covered"] = file_list.covered_branches
data["#{name}_branches_missed"] = file_list.missed_branches
end
File.open(output_filepath, "w+") do |file|
file.print(JSON.pretty_generate(data))
Expand Down

0 comments on commit c63c084

Please sign in to comment.