Bump version to 1.11.6 #561
Workflow file for this run
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: ubuntu | |
on: | |
schedule: | |
- cron: "0 2 * * 2" | |
push: | |
branches: [ main ] | |
tags: [ v* ] | |
paths-ignore: | |
- .github/workflows/macos-x86_64.yml | |
- .github/workflows/macos-arm64.yml | |
- .github/workflows/windows.yml | |
- .github/workflows/alpine.yml | |
- .github/workflows/release_tag.yml | |
- .cirrus.* | |
- Makefile.win | |
pull_request: | |
paths-ignore: | |
- .github/workflows/macos-x86_64.yml | |
- .github/workflows/macos-arm64.yml | |
- .github/workflows/windows.yml | |
- .github/workflows/alpine.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: | |
name: build for ${{ matrix.arch.suffix }} architecture | |
runs-on: ${{ matrix.arch.host }} | |
container: ghcr.io/tamatebako/tebako-ubuntu-20.04:latest | |
needs: prepare | |
if: "(github.event_name == 'push' && needs.prepare.outputs.head_tag == '') || github.event_name == 'pull_request' || github.event_name == 'schedule'" | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: | |
- { host: ubuntu-22.04, suffix: x86_64 } | |
- { host: ubuntu-22.04-arm, suffix: aarch64 } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Package metanorma | |
run: | | |
make build/bin/metanorma-linux-gnu-${{ matrix.arch.suffix }} | |
mv -T build/bin/metanorma-linux-gnu-${{ matrix.arch.suffix }} build/bin/metanorma-linux-${{ matrix.arch.suffix }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: metanorma-linux-${{ matrix.arch.suffix }} | |
path: build/bin/metanorma-linux-${{ matrix.arch.suffix }} | |
- name: Verify packaging | |
run: | | |
build/bin/metanorma-linux-${{ matrix.arch.suffix }} --tebako-extract extracted_source_filesystem | |
diff -r extracted_source_filesystem $TEBAKO_PREFIX/o/s | |
- name: smoke test | |
run: build/bin/metanorma-linux-${{ matrix.arch.suffix }} help | |
build-matrix: | |
uses: metanorma/ci/.github/workflows/build-sample-matrix.yml@main | |
with: | |
smoke: false | |
flavors-only: true | |
public-only: true | |
test: | |
name: test ${{ matrix.flavor.id }} on ${{ matrix.arch.suffix }} architecture | |
needs: [build, build-matrix] | |
runs-on: ${{ matrix.arch.host }} | |
continue-on-error: ${{ matrix.flavor.experimental }} | |
strategy: | |
max-parallel: 5 | |
fail-fast: false | |
matrix: | |
flavor: ${{ fromJson(needs.build-matrix.outputs.samples-matrix).flavor }} | |
arch: | |
- { host: ubuntu-22.04, suffix: x86_64 } | |
- { host: ubuntu-22.04-arm, suffix: aarch64 } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- run: rm Gemfile | |
- if: matrix.flavor.id == 'ietf' | |
uses: metanorma/ci/xml2rfc-setup-action@main | |
- uses: actions/download-artifact@v4 | |
with: | |
name: metanorma-linux-${{ matrix.arch.suffix }} | |
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-${{ matrix.arch.suffix }} | |
- 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: 120 | |
run: | | |
build/bin/metanorma-linux-${{ matrix.arch.suffix }} \ | |
site generate samples \ | |
-c samples/metanorma.yml \ | |
--agree-to-terms | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: site-${{ matrix.arch.suffix }}-${{ matrix.flavor.id }} | |
path: _site | |
release: | |
name: release for ${{ matrix.arch.suffix }} architecture | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ${{ matrix.arch.host }} | |
needs: test | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: | |
- { host: ubuntu-22.04, suffix: x86_64 } | |
- { host: ubuntu-22.04-arm, suffix: aarch64 } | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: metanorma-linux-${{ matrix.arch.suffix }} | |
path: build/bin | |
- name: Package binary into archive | |
run: | | |
chmod +x build/bin/metanorma-linux-${{ matrix.arch.suffix }} | |
mv build/bin/metanorma-linux-${{ matrix.arch.suffix }} metanorma-linux-${{ matrix.arch.suffix }} | |
tar -czvf metanorma-linux-${{ matrix.arch.suffix }}.tgz metanorma-linux-${{ matrix.arch.suffix }} | |
- name: Calculate SHA256 hash | |
run: | | |
sha256sum metanorma-linux-${{ matrix.arch.suffix }}.tgz | cut -d ' ' -f1 > metanorma-linux-${{ matrix.arch.suffix }}.tgz.sha256.txt | |
- uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
metanorma-linux-${{ matrix.arch.suffix }}.tgz | |
metanorma-linux-${{ matrix.arch.suffix }}.tgz.sha256.txt | |
dispatch: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
needs: release | |
steps: | |
- uses: peter-evans/repository-dispatch@v2 | |
with: | |
token: ${{ secrets.METANORMA_CI_PAT_TOKEN }} | |
repository: metanorma/metanorma-snap | |
event-type: ${{ github.repository }} | |
client-payload: '{ "ref": "${{ github.ref }}" }' | |
- uses: peter-evans/repository-dispatch@v2 | |
with: | |
token: ${{ secrets.METANORMA_CI_PAT_TOKEN }} | |
repository: metanorma/homebrew-metanorma | |
event-type: ${{ github.repository }} | |
client-payload: '{ "ref": "${{ github.ref }}" }' |