aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/irc.yml
blob: ebd6be5021b5e531bc3d5ce766be803701094261 (plain)
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
# After every push with successful CI,
# post the commits since the last successful CI into the IRC channel.
name: IRC Post

on:
  workflow_run:
    workflows: ['Continuous Integration']
    types: [completed]
    branches: master

jobs:
  irc:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    steps:
    - name: Git Clone
      uses: actions/checkout@v4.1.6
    - name: Get log
      id: get_log
      env:
        GH_TOKEN: ${{ github.token }}
      run: |
        # Get commit of the previous successful CI run
        COMMIT="`gh run list --workflow="ci.yml" --limit=2 --status=success --json headSha -q '.[1].headSha'`"
        {
          echo 'LOG<<EOF'
          git log --pretty="format:%h %s" --reverse $COMMIT..HEAD
          echo EOF
        } >> "$GITHUB_OUTPUT"
    - name: Post IRC message
      uses: rectalogic/notify-irc@v1
      with:
        channel: "#sciteco"
        server: "irc.libera.chat"
        nickname: git-bot
        # NOTE: There is also ${{ github.event.ref }} ${{ join(github.event.commits.*.message) }}
        # but it probably doesn't give us the commits since the last succesful one, but simply everything
        # belonging to the push.
        message: ${{ steps.get_log.outputs.LOG }}