Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Build on CircleCI with XC16 1.36B and MPLABX 5.10 #118

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Rondom
Copy link

@Rondom Rondom commented Nov 18, 2018

This adds automatic building of both the firmware and the bootloader for BPv4 and BPv3 via CircleCI.

Example build here: https://circleci.com/workflow-run/2a0843b0-7009-4b1b-a3bd-6c6d7ac33b40

To enable it for this repository, one of the owners has to set it up at CircleCI.

Let's discuss this first before merging.

Ideas:

  • Add git-describe-output into the built firmware
  • Come up with different configurations that people typically build (relevant for BPv3?)

@Rondom Rondom changed the title CI: Build on CircleCI with XC16 1.35 and MPLABX 5 WIP: CI: Build on CircleCI with XC16 1.35 and MPLABX 5 Dec 10, 2018
@Rondom
Copy link
Author

Rondom commented Dec 10, 2018

Can someone test the following on Windows and paste the output? I have tried it in wine (because I do not have a Windows machine, but encountered weird behaviour (changes in header-files did not make the project rebuild properly).

make
make # second invocation won't rebuild the project
# now create some tag as follows
git tag -a some-test-tag
make # should rebuild
git tag --delete some-test-tag
make # should rebuild

@andersm
Copy link

andersm commented Dec 10, 2018

This may be a bug in MPLAB X 5: https://www.microchip.com/forums/m1061336.aspx

@Rondom Rondom changed the title WIP: CI: Build on CircleCI with XC16 1.35 and MPLABX 5 CI: Build on CircleCI with XC16 1.35 and MPLABX 5 Feb 13, 2019
Use 'git describe --tags --always --dirty' to generate a version string
which gets included in every binary. The --tags is necessary, because
the latest tag 'v7.0' is not an annotated tag.

If the git-describe-output changes, make will rebuild the required files
automatically. Unfortunately, this is broken on Windows due to a bug in
Microchip's toolchain: https://www.microchip.com/forums/m1061336.aspx

Until that is fixed, a full rebuild is always done on Windows platforms,
because builds that are a bit slower are better than hard to debug
situations due to inconsistent builds.
@Rondom
Copy link
Author

Rondom commented Feb 16, 2019

I have worked around the Windows-only-bug in the Makefile. From my perspective, this PR is ready.
https://circleci.com/workflow-run/2a0843b0-7009-4b1b-a3bd-6c6d7ac33b40

It is a first step. In the future one could think of:

  • generating some website with the list of builds and download links
  • build pirate-loader as well
  • generate some tarball for end-user-consumption

@Rondom Rondom changed the title CI: Build on CircleCI with XC16 1.35 and MPLABX 5 CI: Build on CircleCI with XC16 1.36B and MPLABX 5.10 Feb 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants