diff --git a/.github/labels-calver.yml b/.github/labels-calver.yml new file mode 100644 index 0000000..d4d264b --- /dev/null +++ b/.github/labels-calver.yml @@ -0,0 +1,9 @@ +- color: FF5959 + description: Breaking changes which must be reviewed before being included in the monthly release. + name: 'calver: breaking' +- color: AB9EF7 + description: Changes which should be included in the monthly release. + name: 'calver: monthly' +- color: 9EC9F7 + description: Non-breaking changes which should be included in a patch release. + name: 'calver: patch' \ No newline at end of file diff --git a/.github/workflows/pr-enforce-docs-labels.yml b/.github/workflows/pr-enforce-docs-labels.yml deleted file mode 100644 index e72d4ef..0000000 --- a/.github/workflows/pr-enforce-docs-labels.yml +++ /dev/null @@ -1,14 +0,0 @@ -on: - workflow_call: - secrets: - github-token: - required: true - description: A GitHub personal access token with write access to the project - -jobs: - enforce-docs-label: - uses: localstack/meta/.github/workflows/pr-enforce-pr-labels.yml@main - with: - labels: "docs: needed, docs: skip" - secrets: - github-token: ${{ secrets.github-token }} diff --git a/.github/workflows/pr-enforce-labels.yml b/.github/workflows/pr-enforce-label-groups.yml similarity index 79% rename from .github/workflows/pr-enforce-labels.yml rename to .github/workflows/pr-enforce-label-groups.yml index e2016ee..75a44a5 100644 --- a/.github/workflows/pr-enforce-labels.yml +++ b/.github/workflows/pr-enforce-label-groups.yml @@ -1,4 +1,5 @@ -name: Enforce PR labels +# Ensures all the relevant groups of labels are applied to a PR. +name: Enforce All PR Labels on: workflow_call: @@ -8,16 +9,15 @@ on: description: A GitHub personal access token with write access to the project jobs: - semver: + calver: runs-on: ubuntu-latest steps: - uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 1 - labels: "semver: patch, semver: minor, semver: major" + labels: "calver: patch, calver: monthly, calver: breaking" token: ${{ secrets.github-token }} - docs: runs-on: ubuntu-latest steps: @@ -27,7 +27,6 @@ jobs: count: 1 labels: "docs: needed, docs: skip" token: ${{ secrets.github-token }} - notes: runs-on: ubuntu-latest steps: @@ -36,4 +35,4 @@ jobs: mode: exactly count: 1 labels: "notes: needed, notes: skip" - token: ${{ secrets.github-token }} + token: ${{ secrets.github-token }} \ No newline at end of file diff --git a/.github/workflows/pr-enforce-no-major.yml b/.github/workflows/pr-enforce-no-breaking-changes.yml similarity index 59% rename from .github/workflows/pr-enforce-no-major.yml rename to .github/workflows/pr-enforce-no-breaking-changes.yml index 31032d3..3976507 100644 --- a/.github/workflows/pr-enforce-no-major.yml +++ b/.github/workflows/pr-enforce-no-breaking-changes.yml @@ -1,4 +1,4 @@ -name: Enforce no major labels +name: Enforce no Breaking Changes on: workflow_call: @@ -8,8 +8,7 @@ on: description: A GitHub token with access to the issues of the calling repo jobs: - # make sure no PRs with major label are merged - enforce-no-major-label: + enforce-no-breaking-changes: runs-on: ubuntu-latest permissions: issues: write @@ -19,7 +18,7 @@ jobs: with: mode: exactly count: 0 - labels: "semver: major" + labels: "calver: breaking, semver: major" add_comment: true token: ${{ secrets.github-token }} - message: "Currently, only minor and patch changes are allowed on main. Your PR labels ({{ applied }}) indicate that it cannot be merged into the main at this time." + message: "Currently, no breaking changes are allowed on main. Your PR labels ({{ applied }}) indicate that it cannot be merged into the main at this time." diff --git a/.github/workflows/pr-enforce-no-major-minor.yml b/.github/workflows/pr-enforce-patch-only.yml similarity index 73% rename from .github/workflows/pr-enforce-no-major-minor.yml rename to .github/workflows/pr-enforce-patch-only.yml index 71dfeea..7814749 100644 --- a/.github/workflows/pr-enforce-no-major-minor.yml +++ b/.github/workflows/pr-enforce-patch-only.yml @@ -1,4 +1,5 @@ -name: Enforce no major or minor labels +# Enforces changes merged to main to be of patch only. Activated during code-freeze. +name: Enforce Patch Only on: workflow_call: @@ -8,8 +9,7 @@ on: description: A GitHub token with access to the issues of the calling repo jobs: - # make sure no PRs with major or minor label are merged - enforce-no-major-label: + enforce-patch-label: runs-on: ubuntu-latest permissions: issues: write @@ -19,7 +19,7 @@ jobs: with: mode: exactly count: 0 - labels: "semver: major, semver: minor" + labels: "calver: monthly, calver: breaking, semver: major, semver: minor" add_comment: true token: ${{ secrets.github-token }} message: "Currently, only patch changes are allowed on main. Your PR labels ({{ applied }}) indicate that it cannot be merged into the main at this time." diff --git a/.github/workflows/pr-enforce-pr-labels.yml b/.github/workflows/pr-enforce-pr-labels.yml index ee96761..1c13f20 100644 --- a/.github/workflows/pr-enforce-pr-labels.yml +++ b/.github/workflows/pr-enforce-pr-labels.yml @@ -6,14 +6,13 @@ on: labels: required: true type: string - description: "comma separated list of labels where exactly one has to be set on PRs" + description: "A comma separated list of labels where exactly one has to be set on PRs." secrets: github-token: required: true - description: A GitHub token with access to the issues of the calling repo + description: "A GitHub token with access to the issues of the calling repo." jobs: - # make sure _all_ PRs have a semver label enforce-pr-labels: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/pr-enforce-semver-labels.yml b/.github/workflows/pr-enforce-semver-labels.yml deleted file mode 100644 index 7542a08..0000000 --- a/.github/workflows/pr-enforce-semver-labels.yml +++ /dev/null @@ -1,14 +0,0 @@ -on: - workflow_call: - secrets: - github-token: - required: true - description: A GitHub personal access token with write access to the project - -jobs: - enforce-semver-labels: - uses: localstack/meta/.github/workflows/pr-enforce-pr-labels.yml@main - with: - labels: "semver: patch, semver: minor, semver: major" - secrets: - github-token: ${{ secrets.github-token }} \ No newline at end of file diff --git a/README.md b/README.md index 47fefb8..b2bfcfa 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,9 @@ jobs: github-token: ${{ secrets.REPO_ACCESS_PAT }} ``` -## pr-enforce-no-major +## pr-enforce-no-breaking-changes ```yaml -name: Enforce no major on main +name: Enforce no breaking changes on: pull_request_target: @@ -85,16 +85,16 @@ on: - main jobs: - enforce-no-major: + enforce-no-breaking-changes: permissions: issues: write pull-requests: write - uses: localstack/meta/.github/workflows/pr-enforce-no-major.yml@main + uses: localstack/meta/.github/workflows/pr-enforce-no-breaking-changes.yml@main secrets: github-token: ${{ secrets.REPO_ACCESS_PAT }} ``` -## pr-enforce-no-major-minor +## pr-enforce-patch-only ```yaml name: Enforce no major or minor on main @@ -110,41 +110,12 @@ jobs: permissions: issues: write pull-requests: write - uses: localstack/meta/.github/workflows/pr-enforce-no-major-minor.yml@main + uses: localstack/meta/.github/workflows/pr-enforce-patch-only.yml@main secrets: github-token: ${{ secrets.REPO_ACCESS_PAT }} ``` -## pr-enforce-semver-labels -```yaml -name: Enforce SemVer Labels -on: - pull_request_target: - types: [labeled, unlabeled, opened] - -jobs: - enforce-semver-labels: - uses: localstack/meta/.github/workflows/pr-enforce-semver-labels.yml@main - secrets: - github-token: ${{ secrets.REPO_ACCESS_PAT }} -``` - -## pr-enforce-docs-labels -```yaml -name: Enforce Docs Labels - -on: - pull_request_target: - types: [labeled, unlabeled, opened] - -jobs: - enforce-docs-labels: - uses: localstack/meta/.github/workflows/pr-enforce-docs-labels.yml@main - secrets: - github-token: ${{ secrets.REPO_ACCESS_PAT }} -``` - -## pr-enforce-labels +## pr-enforce-label-groups ```yaml name: Enforce Labels @@ -154,7 +125,7 @@ on: jobs: labels: - uses: localstack/meta/.github/workflows/pr-enforce-core-labels.yml@main + uses: localstack/meta/.github/workflows/pr-enforce-label-groups.yml@main secrets: github-token: ${{ secrets.REPO_ACCESS_PAT }} ```