This repository has been archived by the owner on Jul 9, 2024. It is now read-only.
source-update #566
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: Build and Release | |
on: | |
push: | |
paths: | |
- "**.c" | |
- "**.h" | |
- "**.feature" | |
- "Kconfig" | |
- ".github/workflows/build-and-release.yaml" | |
- "west.yml" | |
- "*.conf" | |
repository_dispatch: | |
types: | |
- source-update | |
workflow_dispatch: | |
permissions: | |
id-token: write | |
contents: write | |
issues: write | |
jobs: | |
# This generates a unique build id (which is also different for re-runs) to | |
# be used in the artifact names to be able to distinguish them when | |
# downloading the artifact files. | |
build-id: | |
name: Generate build ID | |
runs-on: ubuntu-22.04 | |
outputs: | |
id: ${{ steps.id.outputs.id }} | |
steps: | |
- name: Generate build ID | |
id: id | |
run: | | |
ID=`uuidgen` | |
echo "id=${ID}" >> $GITHUB_OUTPUT | |
# This generates a string containing the current date which is used in | |
# in artifact names to simpify locating and distinguishing them once they have | |
# been downloaded | |
date-string: | |
name: Generate string containing the current date | |
runs-on: ubuntu-22.04 | |
outputs: | |
dateAsString: ${{ steps.dateAsString.outputs.dateAsString }} | |
steps: | |
- name: Generate date string | |
id: dateAsString | |
run: echo "dateAsString=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT | |
release-version: | |
name: Determine next release version | |
runs-on: ubuntu-22.04 | |
outputs: | |
nextRelease: ${{ steps.version.outputs.nextRelease }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Determine next release version | |
uses: nordicsemiconductor/cloud-get-next-version-action@saga | |
id: version | |
with: | |
branch: saga | |
defaultVersion: "0.0.0-development-${{ github.sha }}" | |
- run: echo ${{ steps.version.outputs.nextRelease }} | |
build: | |
runs-on: ubuntu-22.04 | |
environment: | |
name: production | |
needs: [release-version, date-string] | |
strategy: | |
matrix: | |
board: [thingy91_nrf9160_ns, nrf9160dk_nrf9160_ns] | |
loglevel: [debug, nodebug] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
path: firmware | |
- name: Configure Version | |
working-directory: firmware | |
run: | | |
APP_VERSION=${{ needs.release-version.outputs.nextRelease }}-${{ matrix.board }}-${{ matrix.loglevel }} | |
echo "CONFIG_ASSET_TRACKER_V2_APP_VERSION=\"${APP_VERSION}\"" >> firmware.conf | |
echo "APP_VERSION=${APP_VERSION}" >> $GITHUB_ENV | |
- name: Configure the Azure IoT DPS ID scope | |
working-directory: firmware | |
run: | | |
echo "CONFIG_AZURE_IOT_HUB_DPS_ID_SCOPE=\"${{ secrets.AZURE_IOT_HUB_DPS_ID_SCOPE }}\"" >> firmware.conf | |
- run: cat firmware/firmware.conf | |
- name: Build with debug enabled | |
working-directory: firmware | |
if: matrix.loglevel == 'debug' | |
run: | | |
docker run --rm -v ${PWD}:/workdir/project nordicplayground/nrfconnect-sdk:main west build -p always -b ${{ matrix.board }} --build-dir /workdir/project/build -- -DOVERLAY_CONFIG="overlay-azure.conf;overlay-pgps.conf;overlay-debug.conf;asset-tracker-cloud-firmware-azure.conf;firmware.conf" -DEXTRA_CFLAGS="-Werror" | |
- name: Build with debug disabled | |
working-directory: firmware | |
if: matrix.loglevel != 'debug' | |
run: | | |
docker run --rm -v ${PWD}:/workdir/project nordicplayground/nrfconnect-sdk:main west build -p always -b ${{ matrix.board }} --build-dir /workdir/project/build -- -DOVERLAY_CONFIG="overlay-azure.conf;overlay-pgps.conf;asset-tracker-cloud-firmware-azure.conf;firmware.conf" -DEXTRA_CFLAGS="-Werror" | |
- name: Copy firmware | |
working-directory: firmware | |
run: | | |
cp build/zephyr/merged.hex ../ | |
cp build/zephyr/app_signed.hex ../ | |
cp build/zephyr/app_update.bin ../ | |
cp firmware.conf ../ | |
- uses: actions/upload-artifact@v3 | |
with: | |
if-no-files-found: error | |
name: | |
${{ matrix.board }}-${{ matrix.loglevel }}-${{ | |
needs.date-string.outputs.dateAsString }}-${{ github.sha }} | |
path: | | |
merged.hex | |
app_signed.hex | |
app_update.bin | |
firmware.conf | |
release: | |
name: Release | |
runs-on: ubuntu-22.04 | |
if: | |
github.ref == 'refs/heads/saga' && (github.event_name == 'push' || | |
github.event_name == 'workflow_dispatch' || github.event_name == | |
'repository_dispatch') | |
needs: [build] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18.x" | |
- run: npx semantic-release |