aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/irc.yml
blob: f96616ff80c80ba281aae703b283d1f31b8c325b (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
40
41
# 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
      with:
        fetch-depth: 0
    - 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 }}