- | required | step | result | details |
-
- | ✓ |
- Custom: \`${{ inputs.cargo_custom_commands }}\` |
- \`${{ steps.custom.outcome == 'success' && '✅' || (steps.custom.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- | ✓ |
- \`cargo fmt --verbose --all -- --check\` |
- \`${{ steps.fmt.outcome == 'success' && '✅' || (steps.fmt.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- | ✓ |
- \`cargo check ${{ inputs.additional_args }}\` |
- \`${{ steps.check.outcome == 'success' && '✅' || (steps.check.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- | ✓ |
- \`cargo clippy ${{ inputs.additional_args }} -- -D warnings\` |
- \`${{ steps.clippy.outcome == 'success' && '✅' || (steps.clippy.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- |
- \`cargo deny check licenses\` |
- \`${{ steps.deny-license.outcome == 'success' && '✅' || (steps.deny-license.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- |
- \`cargo deny check bans\` |
- \`${{ steps.deny-bans.outcome == 'success' && '✅' || (steps.deny-bans.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- |
- \`cargo deny check advisories\` |
- \`${{ steps.deny-advisories.outcome == 'success' && '✅' || (steps.deny-advisories.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- |
- \`cargo deny check sources\` |
- \`${{ steps.deny-sources.outcome == 'success' && '✅' || (steps.deny-sources.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- |
- \`cargo machete\` |
- \`${{ steps.dependencies.outcome == 'success' && '✅' || (steps.dependencies.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
-
- | ✓ |
- \`cargo test ${{ inputs.additional_args }}\` |
- \`${{ steps.tests.outcome == 'success' && '✅' || (steps.tests.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
-
+ function outcomeEmoji(outcome) {
+ switch (outcome) {
+ case 'success':
+ return '✅';
+ case 'skipped':
+ return '⏭';
+ case 'cancelled':
+ return '⛔';
+ case 'failure':
+ return '❌';
+ default:
+ return '❔';
+ }
+ }
+
+ const header = `
+
+ ${{ fromJson(steps.read.outputs.result).name.check }} - ${{ (fromJson(steps.read.outputs.result).fmt_outcome.check == 'failure' || fromJson(steps.read.outputs.result).check_outcome.check == 'failure' || fromJson(steps.read.outputs.result).clippy_outcome.check == 'failure' || fromJson(steps.read.outputs.result).tests_outcome.test == 'failure') && '❌' || '✅' }} ${{ fromJson(steps.read.outputs.result).name.check }}
(click for details)
+
+ | required | step | result | details |
+ `;
+
+ const entry = (name, outcome, required, logId) => `
- | ✓ |
- \`cargo publish --dry-run ${{ inputs.additional_args }}\` |
- \`${{ steps.publish-dryrun.outcome == 'success' && '✅' || (steps.publish-dryrun.outcome == 'skipped' && '⏭' || '❌') }}\` |
- Logs |
+ ${ required ? '✓' : '' } |
+ ${ name } |
+ ${ outcomeEmoji(outcome) } |
+ Logs |
-
+ `;
+ const custom = entry('Custom: ${{ inputs.custom_cargo_commands }}', '${{ fromJson(steps.read.outputs.result).custom_outcome.check }}', true, 'custom');
+ const fmt = entry('cargo fmt --verbose --all -- --check', '${{ fromJson(steps.read.outputs.result).fmt_outcome.check }}', true, 'fmt');
+ const check = entry('cargo check ${{ inputs.additional_args }}', '${{ fromJson(steps.read.outputs.result).check_outcome.check }}', true, 'check');
+ const clippy = entry('cargo clippy ${{ inputs.additional_args }} -- -D warnings', '${{ fromJson(steps.read.outputs.result).clippy_outcome.check }}', true, 'clippy');
+ const licenses = entry('cargo deny check licenses', '${{ fromJson(steps.read.outputs.result).deny-license_outcome.check }}', false, 'deny-license');
+ const bans = entry('cargo deny check bans', '${{ fromJson(steps.read.outputs.result).deny-bans_outcome.check }}', false, 'deny-bans');
+ const advisories = entry('cargo deny check advisories', '${{ fromJson(steps.read.outputs.result).deny-advisories_outcome.check }}', false, 'deny-advisories');
+ const sources = entry('cargo deny check sources', '${{ fromJson(steps.read.outputs.result).deny-sources_outcome.check }}', false, 'deny-sources');
+ const machete = entry('cargo machete', '${{ fromJson(steps.read.outputs.result).dependencies_outcome.check }}', false, 'dependencies');
+ const test = entry('cargo test ${{ inputs.additional_args }}', '${{ fromJson(steps.read.outputs.result).tests_outcome.test }}', true, 'tests');
+ const miri = entry('cargo miri test ${{ inputs.additional_args }}', '${{ fromJson(steps.read.outputs.result).miri_outcome.miri }}', false, 'miri');
+ const publish = entry('cargo publish --dry-run ${{ inputs.additional_args }}', '${{ fromJson(steps.read.outputs.result).publish-dryrun_outcome.check }}', false, 'publish-dryrun');
+
+ const footer = `
+
+
+ Pushed by: @${{ github.actor }}, Action: ${{ github.event_name }};
+ Run: