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

Add Release workflow for Codex #749

Closed
Tracked by #778
veaceslavdoina opened this issue Mar 24, 2024 · 2 comments · Fixed by #827
Closed
Tracked by #778

Add Release workflow for Codex #749

veaceslavdoina opened this issue Mar 24, 2024 · 2 comments · Fixed by #827
Assignees
Labels
E:2.12 Prep EthCC workshop Infrastructure See https://miro.com/app/board/uXjVNZ03E-c=/ for details

Comments

@veaceslavdoina
Copy link
Contributor

veaceslavdoina commented Mar 24, 2024

As a part of the Testnet launch we should publish early releases and it is required to prepare a releasee workflow for GitHub Actions.

We already discussed some options

  1. softprops/action-gh-release
  2. googleapis/release-please-action
  3. ncipollo/release-action
  4. release-drafter/release-drafter
  5. marvinpinto/action-automatic-releases

We also should consider results from the Branch for testnet #747.

After release we also should publish releases for supported architectures/platforms and GitHub support is the following

OS/Architecture amd64 arm64
Linux ubuntu-22.04 public beta
Windows windows-2022 public beta
macOS macos-13 macos-14
@veaceslavdoina veaceslavdoina added the Infrastructure See https://miro.com/app/board/uXjVNZ03E-c=/ for details label Mar 24, 2024
@veaceslavdoina veaceslavdoina self-assigned this Mar 24, 2024
@veaceslavdoina
Copy link
Contributor Author

veaceslavdoina commented Mar 28, 2024

We may use different patterns for binaries names

# app-os-arch
codex-linux-x86_64
codex-linux-aarch64
codex-darwin-x86_64
codex-darwin-aarch64
codex-windows-x86_64
codex-windows-aarch64

# app-ver-os-arch
codex-linux-v1.0.0-x86_64
codex-linux-v1.0.0-aarch64
codex-darwin-v1.0.0-x86_64
codex-darwin-v1.0.0-aarch64
codex-windows-v1.0.0-x86_64
codex-windows-v1.0.0-aarch64

Note: We also can pack binaries with tar.gz, zip, etc.

That can be also useful to get release based on the OS/Arch

# v1.0.0
curl -L https://github.com/codex-storage/nim-codex/releases/download/v1.0.0/codex-`uname -s`-`uname -m` \
  -o /usr/local/bin/codex

# latest
curl -L https://github.com/codex-storage/nim-codex/releases/latest/download/codex-`uname -s`-`uname -m` \
  -o /usr/local/bin/codex
OS amd64 arm64
Linux Linux-x86_64 Linux-aarch64
macOS Darwin-x86_64 Darwin-arm64
Windows Windows_NT-AMD64 Windows_NT-ARM64
  • Linux/Mac:echo "`uname -s`-`uname -m`"
  • Windows: echo %OS%-%PROCESSOR_ARCHITECTURE%

@veaceslavdoina
Copy link
Contributor Author

veaceslavdoina commented Jun 4, 2024

It was decided to start easy and we use very simple release configuration using softprops/action-gh-release action.

Key point are following

  • Use all free available architectures on GitHub Actions
  • For Linux ARM use BuildJet
  • Include version in the binaries names
  • Pack binaries to minimize the size
  • Experimenting with the uploading binaries to the Codex Testnet nodes

Sizes

Binary Size Compressed Ratio
codex-v0.0.1-darwin-amd64 28 M 11 M 2.5
codex-v0.0.1-darwin-arm64 28 M 11 M 2.5
codex-v0.0.1-linux-amd64 118 M 43 M 2.7
codex-v0.0.1-linux-arm64 123 M 44 M 2.8
codex-v0.0.1-windows-amd64.exe 405 M 112 M 3.6
./codex-v0.0.1-darwin-arm64 --version
Codex version:  v0.0.1
Codex revision: 60e3e00
Nim Compiler Version 1.6.14 [MacOSX: arm64]

veaceslavdoina added a commit that referenced this issue Jun 4, 2024
veaceslavdoina added a commit that referenced this issue Jun 4, 2024
github-merge-queue bot pushed a commit that referenced this issue Jun 5, 2024
* Install specific Rust version and add Linux arm64 support (#749)

* Add release workflow (#749)

* Update Rust requirements in the Building guide (#749)

* Fix rust_version input usage (#749)

* Update comments (#749)

* Use ARCH_OVERRIDE only for i386 (#749)

* Add an alternative method to install Rust (#749)

* Do not upload builds to the Codex network (#749)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E:2.12 Prep EthCC workshop Infrastructure See https://miro.com/app/board/uXjVNZ03E-c=/ for details
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant