Skip to content

Updated status badges #484

Updated status badges

Updated status badges #484

Workflow file for this run

name: alpine
on:
schedule:
- cron: "0 2 * * 2"
push:
branches: [ main ]
tags: [ v* ]
paths-ignore:
- .github/workflows/ubuntu.yml
- .github/workflows/macos-x86_64.yml
- .github/workflows/macos-arm64.yml
- .github/workflows/windows.yml
- .github/workflows/release_tag.yml
- .cirrus.*
- Makefile.win
pull_request:
paths-ignore:
- .github/workflows/ubuntu.yml
- .github/workflows/macos-x86_64.yml
- .github/workflows/macos-arm64.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@v4
- 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.17
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup environment
run: cat common.env >> $GITHUB_ENV
- name: Setup Tebako
uses: tamatebako/tebako/.github/actions/setup-tebako@main
with:
cache: build
cache_ver: ${{ env.CACHE_VER }}
cache_path: ${{ env.TEBAKO_DIR }}
bundler_version: ${{ env.BUNDLER_VER }}
- name: package metanorma
run: make build/bin/metanorma-linux-musl-x86_64
- uses: actions/upload-artifact@v4
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 \
openjdk17-jre-headless openssl fontconfig ttf-dejavu tar python3 py3-pip
- uses: actions/checkout@v4
- run: rm Gemfile
- if: matrix.flavor.id == 'ietf'
run: pip3 install xml2rfc --break-system-packages
- uses: actions/download-artifact@v4
with:
name: metanorma-linux-musl-x86_64
path: build/bin
- uses: actions/cache@v4
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@v4
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@v4
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@v4
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