Kernel-Auto-Release #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
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/[email protected] | |
with: | |
path: local_kernel | |
fetch-depth: 0 | |
- name: Configure git identity | |
env: | |
ACTOR: ${{ github.actor }} | |
run: | | |
git config --global user.name "$ACTOR" | |
git config --global user.email "$ACTOR"@users.noreply.github.com | |
- name: create a new branch that references commit id | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
COMMIT_ID: ${{ github.event.inputs.commit_id }} | |
working-directory: ./local_kernel | |
run: | | |
git checkout -b "$VERSION_NUMBER" "$COMMIT_ID" | |
echo "COMMIT_SHA_1=$(git rev-parse HEAD)" >> $GITHUB_ENV | |
- name: Update source files with version info | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
MAIN_BR_VERSION_NUMBER: ${{ github.event.inputs.main_br_version }} | |
COMMIT_SHA_1: ${{ env.COMMIT_SHA_1 }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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="$COMMIT_SHA_1" --new-kernel-version="$VERSION_NUMBER" --new-kernel-main-br-version="$MAIN_BR_VERSION_NUMBER" | |
exit $? | |
- name : Update version number in manifest.yml | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
working-directory: ./local_kernel | |
run: | | |
./.github/scripts/manifest_updater.py -v "$VERSION_NUMBER" | |
exit $? | |
- name : Commit version number change in manifest.yml | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
working-directory: ./local_kernel | |
run: | | |
git add . | |
git commit -m '[AUTO][RELEASE]: Update version number in manifest.yml' | |
git push -u origin "$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 | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
working-directory: ./local_kernel | |
run: | | |
git add . | |
git commit -m '[AUTO][RELEASE]: Update SBOM' | |
git push -u origin "$VERSION_NUMBER" | |
echo "COMMIT_SHA_2=$(git rev-parse HEAD)" >> $GITHUB_ENV | |
- name: Release | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
MAIN_BR_VERSION_NUMBER: ${{ github.event.inputs.main_br_version }} | |
COMMIT_SHA_2: ${{ env.COMMIT_SHA_2 }} | |
REPO_OWNER: ${{ github.repository_owner }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
# Install deps and run | |
pip install -r ./tools/.github/scripts/release-requirements.txt | |
./tools/.github/scripts/release.py "$REPO_OWNER" --kernel-repo-path=local_kernel --kernel-commit="$COMMIT_SHA_2" --new-kernel-version="$VERSION_NUMBER" --new-kernel-main-br-version="$MAIN_BR_VERSION_NUMBER" | |
exit $? | |
- name: Cleanup | |
env: | |
VERSION_NUMBER: ${{ github.event.inputs.version_number }} | |
working-directory: ./local_kernel | |
run: | | |
# Delete the branch created for Tag by SBOM generator | |
git push -u origin --delete "$VERSION_NUMBER" |