name: Publish Release Candidate on: push: branches: - "release/**" permissions: contents: write jobs: build-release-candidate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 0 - uses: actions/setup-python@v6 with: python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@v7 with: version: "latest" enable-cache: false - name: Install PlatformIO Core run: uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.19.zip - name: Extract env run: | echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV echo "BRANCH_SUFFIX=${GITHUB_REF_NAME#release/}" >> $GITHUB_ENV echo "RC_TAG=${GITHUB_REF_NAME#release/}-rc.${GITHUB_RUN_NUMBER}.${GITHUB_RUN_ATTEMPT}" >> $GITHUB_ENV echo "RELEASE_NOTES_PATH=${RUNNER_TEMP}/release-notes.md" >> $GITHUB_ENV - name: Build CrossPoint Release Candidate env: CROSSPOINT_RC_HASH: ${{ env.SHORT_SHA }} run: pio run -e gh_release_rc - name: Patch min_chip_rev_full to 0 run: python3 scripts/patch_min_chip_rev.py .pio/build/gh_release_rc/firmware.bin - name: Generate release notes env: GITHUB_TOKEN: ${{ github.token }} run: | python3 scripts/generate_release_notes.py \ --output "${RELEASE_NOTES_PATH}" \ --target-sha "${GITHUB_SHA}" \ --current-label "${RC_TAG}" \ --release-scope any \ --exclude-tag "${RC_TAG}" - name: Publish prerelease assets if: ${{ env.ACT != 'true' }} uses: softprops/action-gh-release@v2 with: tag_name: ${{ env.RC_TAG }} target_commitish: ${{ github.sha }} name: CrossPoint ${{ env.RC_TAG }} body_path: ${{ env.RELEASE_NOTES_PATH }} prerelease: true files: | .pio/build/gh_release_rc/bootloader.bin .pio/build/gh_release_rc/firmware.bin .pio/build/gh_release_rc/firmware.elf .pio/build/gh_release_rc/firmware.map .pio/build/gh_release_rc/partitions.bin fail_on_unmatched_files: true