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 }}