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

_build_: Fix issues with new goreleaser flow #9684

Merged
merged 5 commits into from
Nov 18, 2022
Merged

Conversation

ianconsolata
Copy link
Contributor

Related Issues

The 1.19.0-rc1 release had a host of minor issues that happened because of some differences between the environment I tested stuff in and CircleCI.
https://app.circleci.com/pipelines/github/filecoin-project/lotus/24401/workflows/bcfbd26f-aebf-41d0-bb48-426f14d12111

Proposed Changes

This is a series of small fixes:

  1. Use the filecoin-goreleaser-key CircleCI context, which has the GORELEASER_KEY env variable set (necessary for using the pro version of goreleaser). I also set this in the project env vars, but the context is a more reliable place to find the key, since it's used organization wide.
  2. I moved the workspace directly to /tmp/workspace, but forgot to update one of the scripts which was using the old directory. This is now fixed.
  3. Goreleaser checks to make sure the git state is clean before releasing, and I forgot to delete the kubo archive (kubo_v0.16.0_linux-amd64.tar.gz) after downloading and installing ipfs. This is also now fixed.
  4. Add the binary names (i.e. lotus-miner, lotus-worker, lotus) to the goreleaser config. Without that, goreleaser assumes they are all named lotus, after the project. Strangely, this only happens on the linux archive, because goreleaser seems to handle it for us when generating universal mac binaries.
  5. Use the --debug flag with goreleaser so we get more verbose output in CI to more easily diagnose issues.

Checklist

Before you mark the PR ready for review, please make sure that:

  • Commits have a clear commit message.
  • PR title is in the form of of <PR type>: <area>: <change being made>
    • example: fix: mempool: Introduce a cache for valid signatures
    • PR type: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, test
    • area, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps
  • New features have usage guidelines and / or documentation updates in
  • Tests exist for new functionality or change in behavior
  • CI is green

Goreleaser checks to make sure we don't have a dirty git state when
releasing, which means the kubo download we use to set up IPFS should be
removed before release.
Without this name, it assumes all binaries share the name of the project
(i.e. lotus), which causes them all to get renamed and collide when
generating the archive.
This will give us much more detailed information in the release job, so
we can more easily debug issues when they occur.
@geoff-vball geoff-vball merged commit fb90ba1 into master Nov 18, 2022
@geoff-vball geoff-vball deleted the id/fix-goreleaser branch November 18, 2022 17:03
@geoff-vball
Copy link
Contributor

Backport here #9685

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