Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 77 additions & 19 deletions .github/workflows/build-fw_nrf52840dk_a2_release_mock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,14 +181,23 @@ jobs:
printf "%s" "$IMAGE_SIGN" > "$RUNNER_TEMP/signing_keys/image_sign-dev.pem"

- name: Prepare derived env
env:
TAG: ${{ github.ref_name }}
TAG_ON_MASTER: ${{ steps.master_check.outputs.tag_on_master }}
run: |
echo "SCRIPT_PATH=./${SCRIPT_NAME}.sh" >> "$GITHUB_ENV"
echo "BUILD_DIR_NAME=${SCRIPT_NAME}" >> "$GITHUB_ENV"
if [[ "${TAG_ON_MASTER:-false}" == "true" ]]; then
BUILD_FLAGS="--tag_on_master=${TAG}"
else
BUILD_FLAGS=""
fi
echo "BUILD_FLAGS=${BUILD_FLAGS}" >> "$GITHUB_ENV"

- name: Download B0, mcuboot, and fwloader releases
run: |
cd "$GITHUB_WORKSPACE/${PROJECT_DIR}"
"./${SCRIPT_PATH}" --download_releases
"./${SCRIPT_PATH}" ${BUILD_FLAGS:+"${BUILD_FLAGS}"} --download_releases

- name: Build inside Docker container (reusing cached .nrfutil and ncs)
env:
Expand Down Expand Up @@ -217,6 +226,7 @@ jobs:
-e PROJECT_DIR="${PROJECT_DIR}" \
-e SCRIPT_PATH="${SCRIPT_PATH}" \
-e BUILD_DIR_NAME="${BUILD_DIR_NAME}" \
-e BUILD_FLAGS="${BUILD_FLAGS}" \
"${IMAGE_REF}" \
bash -lc '
set -xeuo pipefail
Expand All @@ -229,7 +239,7 @@ jobs:
cd $HOME/ncs/${NCS_VERSION}/${PROJECT_DIR}

echo ">>> Running build script: ${SCRIPT_PATH}"
"./${SCRIPT_PATH}" --build_dir="${BUILD_DIR_NAME}"
"./${SCRIPT_PATH}" --build_dir="${BUILD_DIR_NAME}" ${BUILD_FLAGS:+"${BUILD_FLAGS}"}
'

mv "$HOME/ncs/${{ env.NCS_VERSION }}/${{ env.PROJECT_DIR }}" "$GITHUB_WORKSPACE/${PROJECT_DIR}"
Expand All @@ -246,7 +256,8 @@ jobs:
TAG_ON_MASTER: ${{ steps.master_check.outputs.tag_on_master }}
shell: bash
run: |
set -euo pipefail
set -xeuo pipefail
pwd
if [[ "${TAG_ON_MASTER:-false}" == "true" ]]; then
ARTIFACT_NAME="${{ env.BUILD_DIR_NAME }}_${TAG}"
else
Expand All @@ -258,33 +269,80 @@ jobs:
SRC="${{ env.PROJECT_DIR }}/${{ env.BUILD_DIR_NAME }}"
DST="$ARTIFACT_NAME/${{ env.BUILD_DIR_NAME }}"

paths=(
"merged.hex"
"merged.ext_flash.hex"
"b0_container.hex"
"app_provision.hex"
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.bin"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.hex"
)
flag_build_release_subcomponent=false
flag_build_release_b0=false
flag_build_release_mcuboot=false
flag_build_release_fwloader=false

if [[ "${TAG_ON_MASTER:-false}" == "true" ]]; then
echo "Tag on master: ${TAG}"
if [[ "${TAG}" == "b0_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_b0=true
fi
if [[ "${TAG}" == "mcuboot_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_mcuboot=true
fi
if [[ "${TAG}" == "fwloader_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_fwloader=true
fi
fi

if [ "${flag_build_release_subcomponent}" = true ]; then
if [ "${flag_build_release_b0}" = true ]; then
paths=(
"b0_container.hex"
"app_provision.hex"
)
elif [ "${flag_build_release_mcuboot}" = true ]; then
paths=(
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
)
elif [ "${flag_build_release_fwloader}" = true ]; then
paths=(
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
)
else
echo "Unknown subcomponent release tag: ${TAG}"
exit 1
fi
else
paths=(
"merged.hex"
"merged.ext_flash.hex"
"b0_container.hex"
"app_provision.hex"
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.bin"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.hex"
)
fi

for rel in "${paths[@]}"; do
src_path="$SRC/$rel"
dst_path="$DST/$rel"
mkdir -p "$(dirname "$dst_path")"
cp "$src_path" "$dst_path"
done
cp ${{ env.PROJECT_DIR }}/nrfjprog_cfg_ruuviair.toml "$ARTIFACT_NAME/nrfjprog_cfg_ruuviair.toml"
cp "${{ env.PROJECT_DIR }}/nrfjprog_cfg_ruuviair.toml" "$ARTIFACT_NAME/nrfjprog_cfg_ruuviair.toml"

# Create zip file to upload as release asset
zip -r -q "$ARTIFACT_NAME.zip" "$ARTIFACT_NAME"
ARTIFACT_PATH="$GITHUB_WORKSPACE/$ARTIFACT_NAME.zip"
zip -r -q "$ARTIFACT_PATH" "$ARTIFACT_NAME"

echo "artifact_name=$ARTIFACT_NAME" >> "$GITHUB_OUTPUT"
echo "artifact_path=$ARTIFACT_PATH" >> "$GITHUB_OUTPUT"

- name: Upload artifact ${{ steps.create_zip.outputs.artifact_name }}
uses: actions/upload-artifact@v4
Expand Down
89 changes: 72 additions & 17 deletions .github/workflows/build-fw_ruuviair_a1-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,14 +183,23 @@ jobs:
printf "%s" "$IMAGE_SIGN" > "$RUNNER_TEMP/signing_keys/image_sign-dev.pem"

- name: Prepare derived env
env:
TAG: ${{ github.ref_name }}
TAG_ON_MASTER: ${{ steps.master_check.outputs.tag_on_master }}
run: |
echo "SCRIPT_PATH=./${SCRIPT_NAME}.sh" >> "$GITHUB_ENV"
echo "BUILD_DIR_NAME=${SCRIPT_NAME}" >> "$GITHUB_ENV"
if [[ "${TAG_ON_MASTER:-false}" == "true" ]]; then
BUILD_FLAGS="--tag_on_master=${TAG}"
else
BUILD_FLAGS=""
fi
echo "BUILD_FLAGS=${BUILD_FLAGS}" >> "$GITHUB_ENV"

- name: Download B0, mcuboot, and fwloader releases
run: |
cd "$GITHUB_WORKSPACE/${PROJECT_DIR}"
"./${SCRIPT_PATH}" --download_releases
"./${SCRIPT_PATH}" ${BUILD_FLAGS:+"${BUILD_FLAGS}"} --download_releases

- name: Build inside Docker container (reusing cached .nrfutil and ncs)
env:
Expand Down Expand Up @@ -219,6 +228,7 @@ jobs:
-e PROJECT_DIR="${PROJECT_DIR}" \
-e SCRIPT_PATH="${SCRIPT_PATH}" \
-e BUILD_DIR_NAME="${BUILD_DIR_NAME}" \
-e BUILD_FLAGS="${BUILD_FLAGS}" \
"${IMAGE_REF}" \
bash -lc '
set -xeuo pipefail
Expand All @@ -231,7 +241,7 @@ jobs:
cd $HOME/ncs/${NCS_VERSION}/${PROJECT_DIR}

echo ">>> Running build script: ${SCRIPT_PATH}"
"./${SCRIPT_PATH}" --build_dir="${BUILD_DIR_NAME}"
"./${SCRIPT_PATH}" --build_dir="${BUILD_DIR_NAME}" ${BUILD_FLAGS:+"${BUILD_FLAGS}"}
'

mv "$HOME/ncs/${{ env.NCS_VERSION }}/${{ env.PROJECT_DIR }}" "$GITHUB_WORKSPACE/${PROJECT_DIR}"
Expand Down Expand Up @@ -261,28 +271,73 @@ jobs:
SRC="${{ env.PROJECT_DIR }}/${{ env.BUILD_DIR_NAME }}"
DST="$ARTIFACT_NAME/${{ env.BUILD_DIR_NAME }}"

paths=(
"merged.hex"
"merged.ext_flash.hex"
"b0_container.hex"
"app_provision.hex"
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.bin"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.hex"
)
flag_build_release_subcomponent=false
flag_build_release_b0=false
flag_build_release_mcuboot=false
flag_build_release_fwloader=false

if [[ "${TAG_ON_MASTER:-false}" == "true" ]]; then
echo "Tag on master: ${TAG}"
if [[ "${TAG}" == "b0_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_b0=true
fi
if [[ "${TAG}" == "mcuboot_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_mcuboot=true
fi
if [[ "${TAG}" == "fwloader_v"* ]]; then
flag_build_release_subcomponent=true
flag_build_release_fwloader=true
fi
fi

if [ "${flag_build_release_subcomponent}" = true ]; then
if [ "${flag_build_release_b0}" = true ]; then
paths=(
"b0_container.hex"
"app_provision.hex"
)
elif [ "${flag_build_release_mcuboot}" = true ]; then
paths=(
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
)
elif [ "${flag_build_release_fwloader}" = true ]; then
paths=(
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
)
else
echo "Unknown subcomponent release tag: ${TAG}"
exit 1
fi
else
paths=(
"merged.hex"
"merged.ext_flash.hex"
"b0_container.hex"
"app_provision.hex"
"signed_by_mcuboot_and_b0_mcuboot.bin"
"signed_by_mcuboot_and_b0_mcuboot.hex"
"signed_by_mcuboot_and_b0_s1_image.bin"
"signed_by_mcuboot_and_b0_s1_image.hex"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.bin"
"firmware_loader/zephyr/ruuvi_air_fw_loader.signed.hex"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.bin"
"${{ env.PROJECT_DIR }}/zephyr/ruuvi_air_fw.signed.hex"
)
fi

for rel in "${paths[@]}"; do
src_path="$SRC/$rel"
dst_path="$DST/$rel"
mkdir -p "$(dirname "$dst_path")"
cp "$src_path" "$dst_path"
done
cp ${{ env.PROJECT_DIR }}/nrfjprog_cfg_ruuviair.toml "$ARTIFACT_NAME/nrfjprog_cfg_ruuviair.toml"
cp "${{ env.PROJECT_DIR }}/nrfjprog_cfg_ruuviair.toml" "$ARTIFACT_NAME/nrfjprog_cfg_ruuviair.toml"

# Create zip file to upload as release asset
ARTIFACT_PATH="$GITHUB_WORKSPACE/$ARTIFACT_NAME.zip"
Expand Down
Loading