Skip to content

Commit

Permalink
ci: update global workflows (#492)
Browse files Browse the repository at this point in the history
ci: update global workflows
  • Loading branch information
asyncapi-bot authored Jan 26, 2021
1 parent 17f2640 commit 9894697
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 0 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/issues-prs-notifications.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#This action is centrally managed in https://github.com/asyncapi/.github/
#Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo
name: Notify slack

on:

issues:
types: [opened, reopened]

pull_request_target:
types: [opened, reopened, ready_for_review]

jobs:

issue:
if: github.event_name == 'issues' && github.actor != 'asyncapi-bot' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
name: On every new issue
runs-on: ubuntu-latest
steps:
- name: Convert markdown to slack markdown for issue
uses: LoveToKnow/[email protected]
id: issuemarkdown
with:
text: "[${{github.event.issue.title}}](${{github.event.issue.html_url}}) \n ${{github.event.issue.body}}"
- name: Send info about issue
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{secrets.SLACK_GITHUB_NEWISSUEPR}}
SLACK_TITLE: 🐛 New Issue 🐛
SLACK_MESSAGE: ${{steps.issuemarkdown.outputs.text}}
MSG_MINIMAL: true

pull_request:
if: github.event_name == 'pull_request_target' && github.actor != 'asyncapi-bot' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
name: On every new pull request
runs-on: ubuntu-latest
steps:
- name: Convert markdown to slack markdown for pull request
uses: LoveToKnow/[email protected]
id: prmarkdown
with:
text: "[${{github.event.pull_request.title}}](${{github.event.pull_request.html_url}}) \n ${{github.event.pull_request.body}}"
- name: Send info about pull request
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{secrets.SLACK_GITHUB_NEWISSUEPR}}
SLACK_TITLE: 💪 New Pull Request 💪
SLACK_MESSAGE: ${{steps.prmarkdown.outputs.text}}
MSG_MINIMAL: true
76 changes: 76 additions & 0 deletions .github/workflows/release-announcements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#This action is centrally managed in https://github.com/asyncapi/.github/
#Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo
name: 'Announce releases in different channels'

on:
release:
types:
- published

jobs:

slack:
name: Slack - notify on every release
runs-on: ubuntu-latest
steps:
- name: Convert markdown to slack markdown for issue
uses: LoveToKnow/[email protected]
id: markdown
with:
text: "[${{github.event.release.tag_name}}](${{github.event.release.html_url}}) \n ${{ github.event.release.body }}"
- name: Send info about release to Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_RELEASES }}
SLACK_TITLE: Release ${{github.event.release.tag_name}} for ${{github.repository}} is out in the wild 😱💪🍾🎂
SLACK_MESSAGE: ${{steps.markdown.outputs.text}}
MSG_MINIMAL: true

twitter:
name: Twitter - notify on minor and major releases
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Get version of last and previous release
uses: actions/github-script@v3
id: versions
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const query = `query($owner:String!, $name:String!) {
repository(owner:$owner, name:$name){
releases(first: 2, orderBy: {field: CREATED_AT, direction: DESC}) {
nodes {
name
}
}
}
}`;
const variables = {
owner: context.repo.owner,
name: context.repo.repo
};
const { repository: { releases: { nodes } } } = await github.graphql(query, variables);
core.setOutput('lastver', nodes[0].name);
// In case of first release in the package, there is no such thing as previous error, so we set info about previous version only once we have it
// We should tweet about the release no matter of the type as it is initial release
if (nodes.length != 1) core.setOutput('previousver', nodes[1].name);
- name: Identify release type
id: releasetype
# if previousver is not provided then this steps just logs information about missing version, no errors
run: echo "::set-output name=type::$(npx -q -p semver-diff-cli semver-diff ${{steps.versions.outputs.previousver}} ${{steps.versions.outputs.lastver}})"
- name: Get name of the person that is behind the newly released version
id: author
run: echo "::set-output name=name::$(git log -1 --pretty=format:'%an')"
- name: Publish information about the release to Twitter # tweet only if detected version change is not a patch
# tweet goes out even if the type is not major or minor but "You need provide version number to compare."
# it is ok, it just means we did not identify previous version as we are tweeting out information about the release for the first time
if: steps.releasetype.outputs.type != 'null' && steps.releasetype.outputs.type != 'patch' # null means that versions are the same
uses: m1ner79/[email protected]
with:
twitter_status: "Release ${{github.event.release.tag_name}} for ${{github.repository}} is out in the wild 😱💪🍾🎂\n\nThank you for the contribution ${{ steps.author.outputs.name }} ${{github.event.release.html_url}}"
twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }}
twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }}
twitter_access_token_key: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }}
twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}

0 comments on commit 9894697

Please sign in to comment.