Skip halt on asan error. #101
Workflow file for this run
This file contains hidden or 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: "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 |