Merge pull request #4934 from multiversx/feat/staking-v4 #826
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
name: Create release | |
on: | |
push: | |
branches: | |
- master | |
- rc/* | |
workflow_dispatch: | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
build: | |
strategy: | |
matrix: | |
runs-on: [ubuntu-latest] # TODO add macos-latest when builds are possible on macs | |
runs-on: ${{ matrix.runs-on }} | |
name: Build | |
steps: | |
- name: Set up Go 1.20.7 | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.20.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: "0" | |
- name: Get dependencies | |
run: | | |
go get -v -t -d ./... | |
if [ -f Gopkg.toml ]; then | |
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh | |
dep ensure | |
fi | |
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable | |
- name: Set environment variables | |
run: | | |
APP_VER_SHORT=$(git describe --tags) | |
GOOS=$(go env GOOS) | |
GOARCH=$(go env GOARCH) | |
GOPATH=$(go env GOPATH) | |
ARCHIVE="multiversx_""$APP_VER_SHORT""_""$GOOS""_""$GOARCH"".tgz" | |
BUILD_DIR=${GITHUB_WORKSPACE}/build | |
WASM_VERSION=$(cat go.mod | grep mx-chain-vm-v | sort -n | tail -n -1| awk -F '/' '{print$3}'| sed 's/ /@/g') | |
WASMER_DIR=${GOPATH}/pkg/mod/github.com/multiversx/${WASM_VERSION}/wasmer | |
echo "GOOS=${GOOS}" >> $GITHUB_ENV | |
echo "GOARCH=${GOARCH}" >> $GITHUB_ENV | |
echo "ARCHIVE=${ARCHIVE}" >> $GITHUB_ENV | |
echo "BUILD_DIR=${BUILD_DIR}" >> $GITHUB_ENV | |
echo "WASMER_DIR=${WASMER_DIR}" >> $GITHUB_ENV | |
- name: Build | |
run: | | |
mkdir -p ${BUILD_DIR} | |
cd ${GITHUB_WORKSPACE}/cmd/node && go build -o "${BUILD_DIR}/node" -a -ldflags="-X main.appVersion=${APP_VER}" | |
cd ${GITHUB_WORKSPACE}/cmd/keygenerator && go build -o "${BUILD_DIR}/keygenerator" -a -ldflags="-X main.appVersion=${APP_VER}" | |
cd ${GITHUB_WORKSPACE}/cmd/logviewer && go build -o "${BUILD_DIR}/logviewer" -a -ldflags="-X main.appVersion=${APP_VER}" | |
cd ${GITHUB_WORKSPACE}/cmd/termui && go build -o "${BUILD_DIR}/termui" -a -ldflags="-X main.appVersion=${APP_VER}" | |
- name: Package | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
if [[ "$GOOS" == linux && "$GOARCH" == amd64 ]]; then | |
cp -f ${WASMER_DIR}/libwasmer_linux_amd64.so ${BUILD_DIR}; | |
fi | |
if [[ "$GOOS" == linux && "$GOARCH" == arm64 ]]; then | |
cp -f ${WASMER_DIR}/libwasmer_linux_arm64.so ${BUILD_DIR}; | |
fi | |
if [[ "$GOOS" == darwin && "$GOARCH" == amd64 ]]; then | |
cp -f ${WASMER_DIR}/libwasmer_darwin_amd64.dylib ${BUILD_DIR}; | |
fi | |
cd ${BUILD_DIR} | |
tar czvf "${GITHUB_WORKSPACE}/${ARCHIVE}" * | |
stat ${GITHUB_WORKSPACE}/${ARCHIVE} | |
- name: Save artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.ARCHIVE }} | |
path: ${{ github.workspace }}/${{ env.ARCHIVE }} | |
if-no-files-found: error | |
release: | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v2 | |
# https://docs.github.com/en/free-pro-team@latest/actions/guides/storing-workflow-data-as-artifacts#downloading-or-deleting-artifacts | |
# A directory for each artifact is created using its name | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
path: assets | |
- name: Display structure of downloaded files | |
run: ls -R | |
working-directory: assets | |
- name: Create release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh release create --draft --notes="Release draft from Github Actions" vNext | |
sleep 10 | |
for i in $(find ./assets -name '*.tgz' -type f); do | |
gh release upload vNext ${i} | |
done |