Skip to content

Skip halt on asan error. #101

Skip halt on asan error.

Skip halt on asan error. #101

Workflow file for this run

name: "MetaCall Distributable Linux"
on:
workflow_dispatch:
pull_request:
push:
tags:
- 'v*.*.*'
branches:
- master
env:
GHR_VERSION: 0.17.0
# GITHUB_TOKEN - From default secrets
# GITHUB_REPOSITORY - Default variable
jobs:
build:
name: Build and Package
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build: [
{ mode: debug, suffix: "-dbg" },
{ mode: release, suffix: "" }
]
arch: [amd64, 386]
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
if: ${{ matrix.arch != 'amd64' }}
with:
platforms: all
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Check out the repo
uses: actions/checkout@v4
- name: Build tarball
run: |
make PLATFORM=${{ matrix.arch }} BUILD=${{ matrix.build.mode }} base pull deps build
mv out/tarball.tar.gz out/metacall-tarball-linux-${{ matrix.arch }}${{ matrix.build.suffix }}.tar.gz
- name: Upload tarball artifact
uses: actions/upload-artifact@v4
with:
name: tarball-${{ matrix.arch }}-${{ matrix.build.mode }}
path: out/metacall-tarball-linux-${{ matrix.arch }}${{ matrix.build.suffix }}.tar.gz
- name: Test
run: |
mv out/metacall-tarball-linux-${{ matrix.arch }}${{ matrix.build.suffix }}.tar.gz out/tarball.tar.gz
make PLATFORM=${{ matrix.arch }} BUILD=${{ matrix.build.mode }} test
- name: Clear
run: |
set -exuo pipefail
make clear
publish-github:
name: Publish on GitHub
runs-on: ubuntu-latest
needs: build
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download tarball artifacts for all architectures
uses: actions/download-artifact@v4
with:
merge-multiple: true
path: out/
- name: Load GHR binary
run: |
curl -sL https://github.com/tcnksm/ghr/releases/download/v${GHR_VERSION}/ghr_v${GHR_VERSION}_linux_amd64.tar.gz | tar zx
chmod +x ghr_v${GHR_VERSION}_linux_amd64/ghr
mv ghr_v${GHR_VERSION}_linux_amd64/ghr /usr/local/bin
- name: Export variables
run: |
echo "GH_REPO_OWNER=${GITHUB_REPOSITORY_OWNER}" >> $GITHUB_ENV
echo "GH_REPO_NAME=${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
export PREVIOUS_TAG=$(git describe HEAD^1 --abbrev=0 --tags)
echo "PREVIOUS_TAG=${PREVIOUS_TAG}" >> $GITHUB_ENV
echo "GIT_HISTORY<<EOF" >> $GITHUB_ENV
echo "$(git log --no-merges --format="- %s" ${PREVIOUS_TAG}..HEAD)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Publish package to GitHub Releases
run: |
if [[ "${PREVIOUS_TAG}" == "" ]]; then export GIT_HISTORY=$(git log --no-merges --format="- %s"); fi
export CI_COMMIT_TAG="${{ github.ref_name }}"
export RELEASE_DATE=$(date '+%Y-%m-%d')
echo "MetaCall Distributable Linux ${CI_COMMIT_TAG} [${RELEASE_DATE}] - ${GH_REPO_OWNER}/${GH_REPO_NAME}:${CI_COMMIT_SHA}" && echo "${GIT_HISTORY}"
ghr -t "${{ secrets.GITHUB_TOKEN }}" -u "${GH_REPO_OWNER}" -r "${GH_REPO_NAME}" -c "${CI_COMMIT_SHA}" -n "MetaCall Distributable Linux ${CI_COMMIT_TAG} [${RELEASE_DATE}]" -b "${GIT_HISTORY}" -replace "${CI_COMMIT_TAG}" `pwd`/out/*
install-test:
name: Trigger Install Test Workflow
runs-on: ubuntu-latest
needs: publish-github
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: convictional/[email protected]
with:
owner: metacall
repo: install
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
workflow_file_name: test-linux.yml
wait_workflow: true
ref: master