[mlir][acc] Update LegalizeDataValues pass to allow MappableType (#125134)
[llvm-project.git] / .github / workflows / release-tasks.yml
blob780dd0ff6325c9fcd2b65cae8bdf473bcb430765
1 name: Release Task
3 permissions:
4   contents: read
6 on:
7   push:
8     tags:
9       # The regex support here is limited, so just match everything that starts with llvmorg- and filter later.
10       - 'llvmorg-*'
12 jobs:
13   validate-tag:
14     name: Validate Tag
15     runs-on: ubuntu-latest
16     if: github.repository == 'llvm/llvm-project'
17     outputs:
18       release-version: ${{ steps.validate-tag.outputs.release-version }}
19     steps:
20       - name: Validate Tag
21         id: validate-tag
22         run: |
23           echo "${{ github.ref_name }}" | grep -e '^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
24           release_version=$(echo "${{ github.ref_name }}" | sed 's/llvmorg-//g')
25           echo "release-version=$release_version" >> "$GITHUB_OUTPUT"
27   release-create:
28     name: Create a New Release
29     runs-on: ubuntu-latest
30     permissions:
31       contents: write # For creating the release.
32     needs: validate-tag
34     steps:
35       - name: Install Dependencies
36         run: |
37           sudo apt-get update
38           sudo apt-get install python3-github
40       - name: Checkout LLVM
41         uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
43       - name: Create Release
44         env:
45           GITHUB_TOKEN: ${{ github.token }}
46           USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
47         run: |
48           ./llvm/utils/release/./github-upload-release.py --token "$GITHUB_TOKEN" --release ${{ needs.validate-tag.outputs.release-version }} --user ${{ github.actor }} --user-token "$USER_TOKEN" create
49   release-documentation:
50     name: Build and Upload Release Documentation
51     needs:
52       - validate-tag
53     uses: ./.github/workflows/release-documentation.yml
54     with:
55       release-version: ${{ needs.validate-tag.outputs.release-version }}
56       upload: true
58   release-doxygen:
59     name: Build and Upload Release Doxygen
60     permissions:
61       contents: write
62     needs:
63       - validate-tag
64       - release-create
65     uses: ./.github/workflows/release-doxygen.yml
66     with:
67       release-version: ${{ needs.validate-tag.outputs.release-version }}
68       upload: true
69     # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
70     secrets:
71       RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
73   release-lit:
74     name: Release Lit
75     needs: validate-tag
76     uses: ./.github/workflows/release-lit.yml
77     with:
78       release-version: ${{ needs.validate-tag.outputs.release-version }}
79     # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
80     secrets:
81       RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
83   release-binaries:
84     name: Build Release Binaries
85     permissions:
86       contents: write
87       id-token: write
88       attestations: write
89     needs:
90       - validate-tag
91       - release-create
92     strategy:
93       fail-fast: false
94       matrix:
95         runs-on:
96           - ubuntu-22.04
97           - windows-2022
98           - macos-13
99           - macos-14
101     uses: ./.github/workflows/release-binaries.yml
102     with:
103       release-version: ${{ needs.validate-tag.outputs.release-version }}
104       upload: true
105       runs-on: ${{ matrix.runs-on }}
106     # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
107     secrets:
108       RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}
110   release-sources:
111     name: Package Release Sources
112     permissions:
113       contents: read
114       id-token: write
115       attestations: write
116     needs:
117       - validate-tag
118     uses: ./.github/workflows/release-sources.yml
119     with:
120       release-version: ${{ needs.validate-tag.outputs.release-version }}
121     # Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
122     secrets:
123       RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}