Commit Graph

91 Commits

Author SHA1 Message Date
Geoff Stuart
1dee884358
Merge pull request #9890 from filecoin-project/id/fix-docker-sha-push
Don't include network when publishing mainnet sha image
2022-12-16 09:47:30 -05:00
Ian Davis
22ca06f6a1 Use short SHA for docker image tags 2022-12-15 16:51:03 -08:00
Ian Davis
d2a2fbb858 Don't include network when publishing mainnet sha image 2022-12-15 15:54:08 -08:00
Ian Davis
8960c11f86 Add otool -hv check to make sure binary is correct 2022-12-13 16:16:09 -08:00
Ian Davis
9720ce68f2 Download the right go binary on darwin-arm64 2022-12-13 16:16:09 -08:00
Ian Davis
5ad27f56b1 Also push docker images to SHA tags 2022-12-09 18:35:29 +00:00
Ian Davis
0635c1c3b5 Also build / push lotus images 2022-12-09 18:27:31 +00:00
Ian Davis
3b9b688c97 Deploy lotus-all-in-one:master on all master merges 2022-12-09 18:26:51 +00:00
Ian Davis
36183c72d1 Remove echo so docker images actually push 2022-12-09 18:18:08 +00:00
Ian Davis
b747806842 Remove build-debug 2022-12-06 15:27:15 +00:00
Ian Davis
ec19e2949e Remove trigger-testplans, lotus-soup 2022-12-06 15:26:52 +00:00
Ian Davis
e8d769a574 Merge branch 'main' into btrfly-calib-all-in-one 2022-11-29 16:32:14 +00:00
Łukasz Magiera
b1045c39ed
Merge pull request #9712 from filecoin-project/id/update-go-version
_build_: Update to Go Version 1.18.8
2022-11-29 16:51:21 +01:00
Ian Davis
17a130d13d Merge branch 'main' into btrfly-calib-all-in-one 2022-11-29 14:50:02 +00:00
Ian Davis
6455e759e3 Rely on local env varibale instead of context
We have this env varible set in the project settings as well as the
CircleCI context. Due to what seems like a bug on CircleCI's eng, the
using the context causes our release flow to halt when some member of
the team initiate releases, but not others. So for now, it's safest to
rely on the project settings, which definitely won't cause this issue.
2022-11-28 19:54:07 +00:00
Ian Davis
2e04575654 Update to Go Version 1.18.8 2022-11-23 19:00:19 +00:00
Łukasz Magiera
4ae2d400d1
Merge pull request #9709 from filecoin-project/id/discontinue-ECR
_build_: Remove ECR image publishing
2022-11-23 17:43:46 +01:00
Ian Davis
6b4661be92 Remove ECR image publishing
This completely removes publishing to Amamzon ECR. ECR is a private
docker repository (like DockerHub), but since it's private is can only
be used internally by PL teams to launch lotus nodes on AWS
infrastructure. No one currently seems to be using it. All the usual
suspects (Boost, Lotus, Infra) have been asked specifically, and said
they don't, and post has been made in the #engres channel to try and
catch anyone else. No one responded saying we should save it.
2022-11-23 16:24:37 +00:00
Ian Davis
0fd73272ea Turn on goreleaser debug logging
This will give us much more detailed information in the release job, so
we can more easily debug issues when they occur.
2022-11-18 16:34:49 +00:00
Ian Davis
81d4342d97 Remove kubo download after installing
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.
2022-11-18 16:34:03 +00:00
Ian Davis
5df2d9a4f6 Use context with goreleaser key 2022-11-18 16:33:55 +00:00
Ian Davis
b94fd23da2 Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
  - 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
  - nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
  - stable, stable-debug, stable-calibnet, stable-butterflynet
2022-11-09 15:33:10 +00:00
Ian Davis
bc06775e04 Steamline build jobs
- Removes cargo caching (since we don't build FFI from source, this
isn't used)
- Removes npm (this isn't a build dependency, so not sure why it was
  being installed)
2022-11-07 16:18:01 +00:00
Ian Davis
2895dcfa98 Clean up workspace usage 2022-11-07 16:18:01 +00:00
Ian Davis
75f9f72147 Skip homebrew release on prereleases (i.e. *-rc) 2022-11-07 16:18:01 +00:00
Ian Davis
ecef0b6361 Fix goreleaser release workflow 2022-11-07 16:17:22 +00:00
Ian Davis
7afa5c9255 Various tweaks to get m1 self hosted build working
- Set CPATH and LIBRARY_PATH for lotus m1 build
- support dry-run on new release job
2022-11-07 16:16:19 +00:00
Ian Davis
568cd38b0f Rebuild pipeline using goreleaser prebuilt binaries
This builds three separate binaries (darwin/amd64, darwin/arm64,
linux/amd64), and then combines them into single release (including a
universal darwin binary) using goreleaser.

Also removes build-ntwk-{calibration,butterfly}
2022-11-07 16:16:19 +00:00
Ian Davis
e88a7f7088 mv GO_VERSION GO_VERSION_MIN 2022-10-18 16:20:10 +01:00
Ian Davis
296eaff73c Use GO_VERSION to set / verify go version 2022-10-14 15:25:40 +01:00
Ian Davis
a294a9592e Remove old go version first 2022-10-14 14:43:57 +01:00
Ian Davis
284bfc9a57 Run packer build biweekly
This runs the build more often so we can continue to debug any remaining
issues, and ensures that we release a new image on the 15th of this
month (since it was broken on the 1st)
2022-10-05 13:05:36 +01:00
Ian Davis
d1981ef34e Increase aws_polling / no_output_timeout to 1h 2022-10-05 12:28:41 +01:00
Łukasz Magiera
7bf24ccaa2
Merge pull request #9386 from filecoin-project/fix-appimage-go-version
_ci_: Use golang 1.18.1 to build appimage
2022-09-28 10:13:39 +00:00
Ian Davis
1a3cf0c7fe Use golang 1.18.1 to build appimage 2022-09-27 21:29:23 +01:00
Ian Davis
f5048ec61c Don't publish new homebrew releases for RC builds 2022-09-21 12:20:26 -04:00
Shrenuj Bansal
942c3a879c Change go version for circleci 2022-08-17 15:21:03 -04:00
Geoff Stuart
84a2ebcbfd Update xcode version for macos builds 2022-08-15 12:23:20 -04:00
Jennifer Wang
e7628229fc Merge branch 'releases' into jen/17tomaster 2022-08-09 13:23:02 -04:00
Ian Davis
837fa4eae9 Run snap builds for lotus and lotus-filecoin in parallel 2022-08-05 15:13:29 -07:00
Ian Davis
5a8bc204b7 Change default shell options for snapcraft publish
The builds were erroring only in CircleCI, when run manually the same
command worked fine. I reached out to CircleCI support, and got the
following message:

>>>
The reason you are seeing this error when running in CircleCI and not while debugging with SSH is due to the -e set in #!/bin/bash -eo pipefail at the beginning of the shell while the debugging shell would just be #!/bin/bash. The -e sets to exit to the shell when any non zero [0] exit code status.

Since you say the command works when debugging with SSH you can set the shell to use /bin/bash -o pipefail using a default shell options. Here is an example:

      - run:
          name: <<command name>>
          shell: /bin/bash -o pipefail
          command: |
            << some commands>>

Notice that I still added -o pipefail as that prevents errors in a pipeline from being masked.
2022-08-03 21:29:35 -07:00
Ian Davis
9a9428789d Build / Publish snap twice (lotus-filecoin + lotus) 2022-08-03 12:15:53 -07:00
Łukasz Magiera
384b6433c0 circle: Fix template 2022-08-03 11:14:53 +02:00
Łukasz Magiera
a38a9ea144 Merge remote-tracking branch 'origin/master' into push-lotus-gateway-container 2022-08-03 11:12:26 +02:00
Ian Davis
83199661ce Add separate names to build-and-push-image jobs 2022-07-28 20:37:42 -07:00
Ian Davis
7f1b4dc438 Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and  macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.

If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
  and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
  configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
  no tag
- Manually generate and upload checksums after goreleaser
2022-07-28 20:37:42 -07:00
Ian Davis
564aaa7bb1 Snapcraft push was renamed to snapcraft upload 2022-07-27 13:40:16 -07:00
Ian Davis
c2887b3e59 Make snap build more verbose to debug issues. 2022-07-27 13:16:58 -07:00
Ian Davis
7e47ab2a1e Don't publish a stable release on RC tags 2022-07-27 13:16:58 -07:00
Ian Davis
04fce8a5fa Fix snap publishing flow, publish assets independently 2022-07-26 08:55:48 +02:00