Skip to content

Merge pull request #5406 from oasisprotocol/peternose/stable/23.0.x/b… #1042

Merge pull request #5406 from oasisprotocol/peternose/stable/23.0.x/b…

Merge pull request #5406 from oasisprotocol/peternose/stable/23.0.x/b… #1042

Workflow file for this run

# 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