Merge pull request #5365 from oasisprotocol/andrej/feature/voting-pow… #1013
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# NOTE: This name appears in GitHub's Checks API and in workflow's status badge. | |
name: release-dev | |
# Trigger the workflow when: | |
on: | |
# A push occurs to one of the matched tags. | |
push: | |
branches: | |
- master | |
- stable/* | |
# Global environment variables. | |
env: | |
CURL_CMD: curl --proto =https --tlsv1.2 --location --silent --show-error --fail | |
GORELEASER_URL_PREFIX: https://github.com/goreleaser/goreleaser/releases/download/ | |
GORELEASER_VERSION: 0.152.0 | |
JEMALLOC_URL_PREFIX: https://github.com/jemalloc/jemalloc/releases/download/ | |
JEMALLOC_VERSION: 5.2.1 | |
JEMALLOC_CHECKSUM: 34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6 | |
jobs: | |
prepare-dev-release: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
# Fetch all history as the recommended way to fetch all tags and | |
# branches of the project. | |
# This allows the release helpers in common.mk to determine the | |
# project's version from git correctly. | |
# For more info, see: | |
# https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.21.x" | |
- name: Set up Rust | |
run: rustup show | |
- name: Install Oasis Node prerequisites | |
run: | | |
sudo apt-get update | |
sudo apt-get install make libseccomp-dev protobuf-compiler | |
- name: Install jemalloc | |
run: | | |
cd $(mktemp --directory /tmp/jemalloc.XXXXX) | |
${CURL_CMD} ${JEMALLOC_URL_PREFIX}/${JEMALLOC_VERSION}/jemalloc-${JEMALLOC_VERSION}.tar.bz2 \ | |
--output ${JEMALLOC_TARBALL} | |
echo "${JEMALLOC_CHECKSUM} ${JEMALLOC_TARBALL}" | sha256sum --check | |
tar -xf ${JEMALLOC_TARBALL} | |
cd jemalloc-${JEMALLOC_VERSION} | |
# Ensure reproducible jemalloc build. | |
# https://reproducible-builds.org/docs/build-path/ | |
EXTRA_CXXFLAGS=-ffile-prefix-map=$(pwd -L)=. \ | |
EXTRA_CFLAGS=-ffile-prefix-map=$(pwd -L)=. \ | |
./configure --with-jemalloc-prefix='je_' --with-malloc-conf='background_thread:true,metadata_thp:auto' | |
make | |
sudo make install | |
env: | |
JEMALLOC_TARBALL: jemalloc.tar.bz2 | |
- name: Install GoReleaser | |
run: | | |
cd $(mktemp --directory /tmp/goreleaser.XXXXX) | |
${CURL_CMD} ${GORELEASER_URL_PREFIX}/v${GORELEASER_VERSION}/${GORELEASER_TARBALL} \ | |
--output ${GORELEASER_TARBALL} | |
${CURL_CMD} ${GORELEASER_URL_PREFIX}/v${GORELEASER_VERSION}/goreleaser_checksums.txt \ | |
--output CHECKSUMS | |
sha256sum --check --ignore-missing CHECKSUMS | |
tar -xf ${GORELEASER_TARBALL} | |
sudo mv goreleaser /usr/local/bin | |
env: | |
GORELEASER_TARBALL: goreleaser_Linux_x86_64.tar.gz | |
- name: Build the snapshot release | |
run: | | |
make release-build | |
- name: Upload release artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: oasis-core-dev-release | |
path: dist/*.tar.gz |