]> begriffs open source - freertos/blob - .github/workflows/auto-release.yml
Use Regex for Copyright Year in Header Check (#1002)
[freertos] / .github / workflows / auto-release.yml
1 name: Kernel-Auto-Release
2
3 on:
4   workflow_dispatch:
5     inputs:
6       commit_id:
7         description: 'Commit ID'
8         required: true
9         default: 'HEAD'
10       version_number:
11         description: 'Version Number (Ex. 10.4.4)'
12         required: true
13         default: '10.4.4'
14       main_br_version:
15         description: "Version String for task.h on main branch (leave empty to leave as-is)."
16         required: false
17         default: ''
18
19 jobs:
20   release-packager:
21     name: Release Packager
22     runs-on: ubuntu-latest
23     steps:
24       # Install python 3
25       - name: Tool Setup
26         uses: actions/setup-python@v2
27         with:
28           architecture:   x64
29         env:
30           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31
32       # Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage
33       - name: Checkout FreeRTOS Release Tools
34         uses: actions/checkout@v3
35         with:
36           repository: FreeRTOS/FreeRTOS
37           path: tools
38
39       # Simpler git auth if we use checkout action and forward the repo to release script
40       - name: Checkout FreeRTOS Kernel
41         uses: actions/checkout@v3
42         with:
43           path: local_kernel
44           fetch-depth: 0
45
46       - name: Configure git identity
47         run: |
48           git config --global user.name ${{ github.actor }}
49           git config --global user.email ${{ github.actor }}@users.noreply.github.com
50
51       - name: create a new branch that references commit id
52         working-directory: ./local_kernel
53         run: |
54           git checkout -b ${{ github.event.inputs.version_number }} ${{ github.event.inputs.commit_id }}
55           echo "COMMIT_SHA_1=$(git rev-parse HEAD)" >> $GITHUB_ENV
56
57       - name: Update source files with version info
58         run: |
59           # Install deps and run
60           pip install -r ./tools/.github/scripts/release-requirements.txt
61           ./tools/.github/scripts/update_src_version.py FreeRTOS --kernel-repo-path=local_kernel --kernel-commit=${{ env.COMMIT_SHA_1 }} --new-kernel-version=${{ github.event.inputs.version_number }} --new-kernel-main-br-version=${{ github.event.inputs.main_br_version }}
62           exit $?
63         env:
64             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
66       - name : Update version number in manifest.yml
67         working-directory: ./local_kernel
68         run: |
69           ./.github/scripts/manifest_updater.py -v ${{ github.event.inputs.version_number }}
70           exit $?
71
72       - name : Commit version number change in manifest.yml
73         working-directory: ./local_kernel
74         run: |
75           git add .
76           git commit -m '[AUTO][RELEASE]: Update version number in manifest.yml'
77           git push -u origin ${{ github.event.inputs.version_number }}
78
79       - name: Generate SBOM
80         uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main
81         with:
82           repo_path: ./local_kernel
83           source_path: ./
84
85       - name: commit SBOM file
86         working-directory: ./local_kernel
87         run: |
88           git add .
89           git commit -m '[AUTO][RELEASE]: Update SBOM'
90           git push -u origin ${{ github.event.inputs.version_number }}
91           echo "COMMIT_SHA_2=$(git rev-parse HEAD)" >> $GITHUB_ENV
92
93       - name: Release
94         run: |
95           # Install deps and run
96           pip install -r ./tools/.github/scripts/release-requirements.txt
97           ./tools/.github/scripts/release.py ${{ github.repository_owner }} --kernel-repo-path=local_kernel --kernel-commit=${{ env.COMMIT_SHA_2 }} --new-kernel-version=${{ github.event.inputs.version_number }} --new-kernel-main-br-version=${{ github.event.inputs.main_br_version }}
98           exit $?
99         env:
100             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101
102       - name: Cleanup
103         working-directory: ./local_kernel
104         run: |
105           # Delete the branch created for Tag by SBOM generator
106           git push -u origin --delete ${{ github.event.inputs.version_number }}