| name: Kernel-Auto-Release |
| |
| on: |
| workflow_dispatch: |
| inputs: |
| commit_id: |
| description: 'Commit ID' |
| required: true |
| default: 'HEAD' |
| version_number: |
| description: 'Version Number (Ex. 10.4.4)' |
| required: true |
| default: '10.4.4' |
| main_br_version: |
| description: "Version String for task.h on main branch (leave empty to leave as-is)." |
| required: false |
| default: '' |
| |
| jobs: |
| release-packager: |
| name: Release Packager |
| runs-on: ubuntu-latest |
| steps: |
| # Install python 3 |
| - name: Tool Setup |
| uses: actions/setup-python@v2 |
| with: |
| architecture: x64 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| # Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage |
| - name: Checkout FreeRTOS Release Tools |
| uses: actions/checkout@v4.1.1 |
| with: |
| repository: FreeRTOS/FreeRTOS |
| path: tools |
| |
| # Simpler git auth if we use checkout action and forward the repo to release script |
| - name: Checkout FreeRTOS Kernel |
| uses: actions/checkout@v4.1.1 |
| with: |
| path: local_kernel |
| fetch-depth: 0 |
| |
| - name: Configure git identity |
| run: | |
| git config --global user.name ${{ github.actor }} |
| git config --global user.email ${{ github.actor }}@users.noreply.github.com |
| |
| - name: create a new branch that references commit id |
| working-directory: ./local_kernel |
| run: | |
| git checkout -b ${{ github.event.inputs.version_number }} ${{ github.event.inputs.commit_id }} |
| echo "COMMIT_SHA_1=$(git rev-parse HEAD)" >> $GITHUB_ENV |
| |
| - name: Update source files with version info |
| run: | |
| # Install deps and run |
| pip install -r ./tools/.github/scripts/release-requirements.txt |
| ./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 }} |
| exit $? |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name : Update version number in manifest.yml |
| working-directory: ./local_kernel |
| run: | |
| ./.github/scripts/manifest_updater.py -v ${{ github.event.inputs.version_number }} |
| exit $? |
| |
| - name : Commit version number change in manifest.yml |
| working-directory: ./local_kernel |
| run: | |
| git add . |
| git commit -m '[AUTO][RELEASE]: Update version number in manifest.yml' |
| git push -u origin ${{ github.event.inputs.version_number }} |
| |
| - name: Generate SBOM |
| uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main |
| with: |
| repo_path: ./local_kernel |
| source_path: ./ |
| |
| - name: commit SBOM file |
| working-directory: ./local_kernel |
| run: | |
| git add . |
| git commit -m '[AUTO][RELEASE]: Update SBOM' |
| git push -u origin ${{ github.event.inputs.version_number }} |
| echo "COMMIT_SHA_2=$(git rev-parse HEAD)" >> $GITHUB_ENV |
| |
| - name: Release |
| run: | |
| # Install deps and run |
| pip install -r ./tools/.github/scripts/release-requirements.txt |
| ./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 }} |
| exit $? |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name: Cleanup |
| working-directory: ./local_kernel |
| run: | |
| # Delete the branch created for Tag by SBOM generator |
| git push -u origin --delete ${{ github.event.inputs.version_number }} |