Skip to content

Commit

Permalink
Add a single commit check workflow
Browse files Browse the repository at this point in the history
[noissue]
  • Loading branch information
David Davis committed Sep 9, 2021
1 parent ccbd668 commit 61f3d23
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/check_commits.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@
name: Check Commit
on: pull_request
jobs:
single_commit:
name: Assert single commit
steps:
- name: Checkout
uses: actions/checkout@v1
with:
fetch-depth: 30
- name: Checkout master
run: git fetch origin master
- name: create local master branch
run: git branch master origin/master
- name: Commit Count Check
run: test `git log --oneline --no-merges HEAD ^master | wc -l ` = 1
runs-on: ubuntu-latest
test:
runs-on: ubuntu-latest
steps:
Expand Down
1 change: 1 addition & 0 deletions CHANGES/494.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added a workflow to check that PRs contain a single commit.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ The following settings are stored in `template_config.yml`.
noissue_marker A string that is used to mark a commit as not attached to an issue.
single_commit_check Runs a workflow to indicate whether a PR contains a single commit or not.
sync_ci Enables a nightly workflow to update the CI files.
test_bindings Include a job that runs a script to test generated client
Expand Down
24 changes: 24 additions & 0 deletions discourse_post.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

# Posts a release announcement to discourse

URL="https://discourse.pulpproject.org/posts.json"
CATEGORY=1 # Announcements
DISCOURSE_USER="system"

plugin="$1"
version="$2"
body = $(cat <<-EOM
$plugin $version has been released.
PyPI: https://pypi.org/project/$plugin/$version/
Changelog: Changelog — Pulp File 1.9.1 documentation
Docs: pulp_file Plugin — Pulp File 1.9.1 documentation
Python bindings: pulp-file-client · PyPI
Ruby bindings: pulp_file_client | RubyGems.org | your community gem host
EOM
curl -X POST "$URL"
-H "Api-Key: $DISCOURSE_TOKEN"
-H "Api-Username: $DISCOURSE_USER"
-H "title: $1 $2 has been released"
1 change: 1 addition & 0 deletions plugin-template
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ DEFAULT_SETTINGS = {
"release_user": "pulpbot",
"release_email": "[email protected]",
"noissue_marker": "[noissue]",
"single_commit_check": True,
"sync_ci": True,
"test_bindings": True,
"test_cli": False,
Expand Down
17 changes: 17 additions & 0 deletions templates/github/.github/workflows/ci.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,23 @@ jobs:

{% if pre_job_template -%}{{ " " | indent }}{% include pre_job_template.path %}{%- endif %}

{%- if single_commit_check %}
single_commit:
name: Assert single commit
steps:
- name: Checkout
uses: actions/checkout@v1
with:
fetch-depth: 30
- name: Checkout {{ plugin_default_branch }}
run: git fetch origin {{ plugin_default_branch }}
- name: create local {{ plugin_default_branch }} branch
run: git branch {{ plugin_default_branch }} origin/{{ plugin_default_branch }}
- name: Commit Count Check
run: test `git log --oneline --no-merges HEAD ^{{ plugin_default_branch }} | wc -l ` = 1
runs-on: ubuntu-latest
{%- endif %}

lint:
runs-on: ubuntu-latest
{% if pre_job_template %}needs: {{ pre_job_template.name }}{% endif %}
Expand Down

0 comments on commit 61f3d23

Please sign in to comment.