Bump version to 1.8.6.pre #386
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: alpine | |
on: | |
schedule: | |
- cron: "0 2 * * 2" | |
push: | |
branches: [ main ] | |
tags: [ v* ] | |
paths-ignore: | |
- .github/workflows/ubuntu.yml | |
- .github/workflows/macos.yml | |
- .github/workflows/windows.yml | |
- .github/workflows/release_tag.yml | |
- .cirrus.* | |
- Makefile.win | |
pull_request: | |
paths-ignore: | |
- .github/workflows/ubuntu.yml | |
- .github/workflows/macos.yml | |
- .github/workflows/windows.yml | |
- .github/workflows/release_tag.yml | |
- .cirrus.* | |
- Makefile.win | |
workflow_dispatch: | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}' | |
cancel-in-progress: true | |
jobs: | |
# https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/ | |
prepare: | |
runs-on: ubuntu-latest | |
outputs: | |
head_tag: ${{ steps.check.outputs.head_tag }} | |
foreign_pr: ${{ steps.check.outputs.foreign_pr }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Retrieve tags | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true | |
- name: Set output variables | |
id: check | |
run: | | |
fpr="no" | |
tag="" | |
if [[ "${{ github.ref }}" == refs/heads/* ]]; then | |
tag="$(git tag --points-at HEAD)" | |
elif [[ "${{ github.ref }}" == refs/pull/* ]] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.event.pull_request.base.repo.full_name }}" ]; then | |
fpr="yes" | |
fi | |
echo "foreign_pr=${fpr}" >> $GITHUB_OUTPUT | |
echo "head_tag=${tag}" >> $GITHUB_OUTPUT | |
build: | |
runs-on: ubuntu-latest | |
needs: prepare | |
container: | |
image: alpine:3.16 | |
steps: | |
- name: Install packages | |
run: | | |
apk --no-cache --upgrade add build-base cmake git bash \ | |
autoconf boost-static boost-dev flex-dev bison make \ | |
binutils-dev libevent-dev acl-dev sed \ | |
lz4-dev openssl-dev zlib-dev xz ninja zip unzip curl \ | |
libunwind-dev libdwarf-dev gflags-dev elfutils-dev \ | |
libevent-static openssl-libs-static lz4-static xz-dev \ | |
zlib-static libunwind-static acl-static tar libffi-dev \ | |
gdbm-dev yaml-dev yaml-static ncurses-dev ncurses-static \ | |
readline-dev readline-static p7zip ruby-dev gcompat \ | |
gettext-dev python3 pkgconfig gperf | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup environment | |
run: cat common.env alpine.env >> $GITHUB_ENV | |
- name: Install bundler | |
run: gem install bundler -v ${{ env.BUNDLER_VER }} | |
- name: Checkout tebako tools | |
uses: actions/checkout@v3 | |
with: | |
repository: tamatebako/tebako-tools | |
path: tebako-tools | |
- name: Install clang and patch system includes | |
if: ${{ env.CC == 'clang' }} | |
run: | | |
apk --no-cache --upgrade add clang | |
tebako-tools/ci-scripts/patch-system-includes.sh | |
- name: Build libjemalloc | |
run: | | |
wget -q https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 | |
tar -xf jemalloc-5.2.1.tar.bz2 | |
cd jemalloc-5.2.1 | |
./configure | |
make -j4 | |
make install | |
- name: Tebako setup cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.TEBAKO_DIR }}/${{ env.DEPS }} | |
key: ${{ env.OS_VER }}-${{ env.CC }}-${{ hashFiles('**/common.env') }}-${{ hashFiles('**/alpine.env') }}-v${{ env.CACHE_VER }} | |
- name: Install tebako | |
run: gem install tebako | |
- name: package metanorma | |
run: make build/bin/metanorma-linux-musl-x86_64 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: metanorma-linux-musl-x86_64 | |
path: build/bin/metanorma-linux-musl-x86_64 | |
- name: Verify packaging | |
run: | | |
build/bin/metanorma-linux-musl-x86_64 --tebako-extract extracted_source_filesystem | |
diff -r extracted_source_filesystem .archive/tebako/output/source_filesystem | |
- name: smoke test | |
run: build/bin/metanorma-linux-musl-x86_64 help | |
build-matrix: | |
uses: metanorma/ci/.github/workflows/build-sample-matrix.yml@main | |
with: | |
smoke: false | |
flavors-only: true | |
public-only: true | |
test: | |
needs: [build, build-matrix] | |
runs-on: ubuntu-latest | |
env: | |
SSL_CERT_DIR: /etc/ssl/certs | |
container: | |
image: alpine:latest | |
continue-on-error: ${{ matrix.flavor.experimental }} | |
strategy: | |
max-parallel: 5 | |
fail-fast: false | |
matrix: ${{ fromJson(needs.build-matrix.outputs.samples-matrix) }} | |
steps: | |
- name: Install packages | |
run: | | |
apk --no-cache --upgrade add git libstdc++ xz libarchive \ | |
openjdk10-jre-headless openssl fontconfig ttf-dejavu tar | |
- uses: actions/checkout@v3 | |
- run: rm Gemfile | |
- uses: actions/download-artifact@v3 | |
with: | |
name: metanorma-linux-musl-x86_64 | |
path: build/bin | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.relaton | |
key: relaton-linux-${{ matrix.flavor.id }} | |
restore-keys: relaton-linux-${{ matrix.flavor.id }} | |
- run: chmod +x build/bin/metanorma-linux-musl-x86_64 | |
- name: Fetch samples (${{ matrix.flavor.id }}) | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
repository: metanorma/mn-samples-${{ matrix.flavor.id }} | |
token: ${{ secrets.METANORMA_CI_PAT_TOKEN }} | |
path: ${{ github.workspace }}/samples | |
fetch-depth: 1 | |
- name: Test (${{ matrix.flavor.id }}) | |
timeout-minutes: 45 | |
run: | | |
build/bin/metanorma-linux-musl-x86_64 \ | |
site generate samples \ | |
-c samples/metanorma.yml \ | |
--agree-to-terms | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: site-${{ matrix.flavor.id }} | |
path: _site | |
release: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: metanorma-linux-musl-x86_64 | |
path: build/bin | |
- name: Package binary into archive | |
run: | | |
chmod +x build/bin/metanorma-linux-musl-x86_64 | |
mv build/bin/metanorma-linux-musl-x86_64 metanorma-linux-musl-x86_64 | |
tar -czvf metanorma-linux-musl-x86_64.tgz metanorma-linux-musl-x86_64 | |
- name: Calculate SHA256 hash | |
run: | | |
sha256sum metanorma-linux-musl-x86_64.tgz | cut -d ' ' -f1 > metanorma-linux-musl-x86_64.tgz.sha256.txt | |
- uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
metanorma-linux-musl-x86_64.tgz | |
metanorma-linux-musl-x86_64.tgz.sha256.txt |