summaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
blob: cbc1e8c61c549de953d92f7be5aa2864bf3ce4ff (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
42
43
44
45
46
47
48
49
50
51
52
name: Release Version
on:
  push:
    tags:
      - "v*.*.*"

env:
  MATE_DESKTOP_VERSION: 1.28.2
  CACHE_PATH: /tmp/.cache

jobs:
  release:
    name: Release New Version
    runs-on: ubuntu-latest
    steps:
      - name: Repository checkout
        uses: actions/checkout@v6
        with:
          submodules: "true"

      - name: Install dependency packages
        run: sudo .github/workflows/ubuntu.sh

      - name: Install higher version Mate component packages
        run: sudo .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}

      - name: Build the source code
        run: .github/workflows/builds.sh autotools

      - name: Generate release tarball and checksums
        run: |
          make distcheck
          TARBALL=$(ls marco-*.tar.xz | head -1)
          sha256sum "$TARBALL" > "$TARBALL.sha256"
          md5sum "$TARBALL" > "$TARBALL.md5"

      - name: Install GH CLI
        uses: dev-hanz-ops/install-gh-cli-action@v0.2.1
        with:
          gh-cli-version: 2.39.1

      - name: Create github release
        run: |
          gh release create ${{ github.ref_name }} --title "Marco ${{ github.ref_name }}" --generate-notes marco-*.tar.xz marco-*.tar.xz.sha256 marco-*.tar.xz.md5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Notify MATE release server
        run: |
          curl -X POST -H "Content-Type: application/json" \
            -d "{\"tag\": \"${{ github.ref_name }}\", \"repository\": \"${{ github.repository }}\", \"release_url\": \"https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\"}" \
            https://release.mate-desktop.org/release || echo "::warning::Release notification failed"