File: release.yml

package info (click to toggle)
ares 147%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 35,244 kB
  • sloc: cpp: 334,263; ansic: 98,696; sh: 123; makefile: 31
file content (82 lines) | stat: -rw-r--r-- 3,417 bytes parent folder | download | duplicates (2)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: Release
on:
  workflow_call:
    inputs:
      notarize:
        description: Notarize build (macOS only)
        required: false
        default: true
        type: boolean
jobs:
  release:
    if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
      with:
        path: 'src'
    - name: Download Artifacts
      uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
      with:
        path: 'bin'
    - name: "Decompress Build Artifacts"
      if: runner.os == 'macOS'
      run: |
        for package in macos-universal windows-x64 windows-clang-cl-arm64; do
          pushd bin/ares-${package}
          tar -xJf ares-${package}.tar.xz
          rm -f ares-${package}.tar.xz
          popd
        done
    - name: "macOS: notarize"
      if: inputs.notarize
      run: |
        ditto -c -k --keepParent ${{ github.workspace }}/bin/ares-macos-universal/ares.app /tmp/ares.zip
        xcrun notarytool submit /tmp/ares.zip --apple-id "$MACOS_NOTARIZATION_USERNAME" --password "$MACOS_NOTARIZATION_PASSWORD" --team-id "$MACOS_NOTARIZATION_TEAMID" --wait
        xcrun stapler staple ${{ github.workspace }}/bin/ares-macos-universal/ares.app
      env:
        MACOS_NOTARIZATION_USERNAME: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
        MACOS_NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
        MACOS_NOTARIZATION_TEAMID: ${{ secrets.MACOS_NOTARIZATION_TEAMID }}
    - name: Package Artifacts
      run: src/.github/scripts/package_artifacts.sh
    - name: Check Release Tag ☑️
      id: check
      run: |
          now=$(date +'%Y-%m-%d')
          subject=$(git -C src log -1 --pretty=%s)
          if [[ ${GITHUB_REF_NAME} == master ]];
          then
            echo "tag=nightly" >> $GITHUB_OUTPUT
            versionName="nightly ${now}"
            echo "versionName=${versionName}" >> $GITHUB_OUTPUT
            echo "description=${subject}" >> $GITHUB_OUTPUT
          else
            echo "tag=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
            echo "versionName=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
            description="This is ares ${GITHUB_REF_NAME}, released on ${now}."
            echo "description=${description}" >> $GITHUB_OUTPUT
          fi
    - name: Update Git Tag
      if: steps.check.outputs.tag == 'nightly'
      id: update-tag
      run: |
          git -C src tag -f ${{ steps.check.outputs.tag }}
          git -C src push -f origin ${{ steps.check.outputs.tag }}

    - name: Create Release 🛫
      id: create_release
      uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191
      with:
        prerelease: ${{ steps.check.outputs.tag == 'nightly' }}
        tag_name: ${{ steps.check.outputs.tag }}
        name: ares ${{ steps.check.outputs.versionName }}
        body: ${{ steps.check.outputs.description }}
        files: |
          ${{ github.workspace }}/ares-source.tar.gz
          ${{ github.workspace }}/ares-macos-universal.zip
          ${{ github.workspace }}/ares-macos-universal-dSYMs.zip
          ${{ github.workspace }}/ares-windows-x64.zip
          ${{ github.workspace }}/ares-windows-x64-PDBs.zip
          ${{ github.workspace }}/ares-windows-clang-cl-arm64.zip
          ${{ github.workspace }}/ares-windows-clang-cl-arm64-PDBs.zip