-
Notifications
You must be signed in to change notification settings - Fork 0
47 lines (43 loc) · 1.7 KB
/
Copy pathci.yml
File metadata and controls
47 lines (43 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: main
on:
push:
branches:
- main
pull_request: {}
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
checks:
uses: ./.github/workflows/_checks.yml
action-smoke:
# PR-only: action-smoke has no value on push-to-main, where the dogfood
# workflow (`.github/workflows/semvertag.yml`) exercises the real
# composite action against the merge commit. Under `dry-run: true`,
# this job is side-effect-free regardless of main's tag state.
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
# No `permissions:` block: `contents: read` is sufficient because
# dry-run guarantees no tag-push attempt. Even a future regression
# that bypassed dry-run would be denied by the API.
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- id: semvertag
uses: ./
with:
dry-run: 'true'
env:
SEMVERTAG_BRANCH_PREFIX__MINOR: '["feat/"]'
- name: Verify the composite normalized dry-run to no-bump
# Under `dry-run: true`, the CLI's status is one of `dry_run`,
# `no_tags`, `already_tagged`, `no_merge_commit`, `no_conforming_commit` —
# all normalized to `no-bump` by action.yml. If action.yml's
# dry-run wiring regresses, the CLI would push a tag, status would
# be `created`, and this assertion would fail loudly. `bump` is
# intentionally NOT asserted: under dry-run it reflects the would-be
# value (`patch`/`minor`/`major` for an untagged merge, `none`
# otherwise) — not a stable smoke value.
run: |
test "${{ steps.semvertag.outputs.status }}" = "no-bump"