Skip to content

Maxicode: test case exposing sub-optimal encode - for discussion #759

Maxicode: test case exposing sub-optimal encode - for discussion

Maxicode: test case exposing sub-optimal encode - for discussion #759

Workflow file for this run

---
name: BWIPP CI
on:
push:
branches:
- "*"
tags:
- "*"
pull_request:
branches:
- "*"
permissions: read-all
jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ghostscript
make -j "$(nproc)"
- name: Test
run: make test
docs-pdf:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: True
- name: Convert images from EPS to PDF
run: |
sudo apt-get update
sudo apt install -y --no-install-recommends \
texlive-font-utils ghostscript
find wikidocs/images/ -name '*.eps' -print0 | \
xargs -0 -t -P "$(nproc)" -I{} epstopdf {}
- name: Transform wiki
run: |
sed -i \
-e 's/!\[\(.*\)\](\(images\)\/\(.\+\).png)/![\1](wikidocs\/\2\/\3.pdf)/' \
wikidocs/symbologies/*.md wikidocs/options/*.md wikidocs/kb/*.md
perl -pi -e 's/(([^!]|^)\[[^\]]+\])\(([A-Za-z0-9-]+)\)/\1\L(#\3)/g' \
wikidocs/symbologies/*.md wikidocs/options/*.md wikidocs/kb/*.md
sed -i -e 's/\[!\[GitHub license\].*//' README.md
- name: Build PDF docs
uses: docker://pandoc/latex:2.9
with:
args: >-
-f gfm -t latex
--data-dir=wikidocs/__pandoc --template template.latex
-M title="Barcode Writer in Pure PostScript"
-M author="https://bwipp.terryburton.co.uk"
-V geometry:a4paper,margin=2cm
-B wikidocs/__pandoc/__introduction.latex
--toc --toc-depth=3
--top-level-division=chapter
-o wikidocs/__pandoc/barcodewriter.pdf
README.md
wikidocs/kb/Quick-Guide.md
src/README.monolithic
src/README.resource
wikidocs/__pandoc/__symbology-reference.md
wikidocs/__pandoc/__symbology-pos.md
wikidocs/symbologies/EAN-13.md
wikidocs/symbologies/EAN-8.md
wikidocs/symbologies/UPC-A.md
wikidocs/symbologies/UPC-E.md
wikidocs/symbologies/ISBN.md
wikidocs/symbologies/ISMN.md
wikidocs/symbologies/ISSN.md
wikidocs/__pandoc/__symbology-2d.md
wikidocs/symbologies/Aztec-Code.md
wikidocs/symbologies/Aztec-Runes.md
wikidocs/symbologies/Data-Matrix.md
wikidocs/symbologies/Data-Matrix-Rectangular.md
wikidocs/symbologies/Data-Matrix-Rectangular-Extension.md
wikidocs/symbologies/Han-Xin-Code.md
wikidocs/symbologies/MicroPDF417.md
wikidocs/symbologies/PDF417.md
wikidocs/symbologies/Compact-PDF417.md
wikidocs/symbologies/QR-Code.md
wikidocs/symbologies/Micro-QR-Code.md
wikidocs/symbologies/Swiss-QR-Code.md
wikidocs/__pandoc/__symbology-1d.md
wikidocs/symbologies/Code-128.md
wikidocs/symbologies/Code-39.md
wikidocs/symbologies/Code-39-Extended.md
wikidocs/symbologies/Code-93.md
wikidocs/symbologies/Code-93-Extended.md
wikidocs/symbologies/Interleaved-2-of-5.md
wikidocs/__pandoc/__symbology-supplychain.md
wikidocs/symbologies/EAN-14.md
wikidocs/symbologies/ITF-14.md
wikidocs/symbologies/SSCC-18.md
wikidocs/symbologies/GS1-DataMatrix.md
wikidocs/symbologies/GS1-QR-Code.md
wikidocs/symbologies/GS1-128.md
wikidocs/symbologies/GS1-DotCode.md
wikidocs/__pandoc/__symbology-gs1db.md
wikidocs/symbologies/GS1-DataBar-Omnidirectional.md
wikidocs/symbologies/GS1-DataBar-Stacked-Omnidirectional.md
wikidocs/symbologies/GS1-DataBar-Expanded.md
wikidocs/symbologies/GS1-DataBar-Expanded-Stacked.md
wikidocs/symbologies/GS1-DataBar-Truncated.md
wikidocs/symbologies/GS1-DataBar-Stacked.md
wikidocs/symbologies/GS1-DataBar-Limited.md
wikidocs/symbologies/GS1-North-American-Coupon-Code.md
wikidocs/__pandoc/__symbology-postal.md
wikidocs/symbologies/Australia-Post.md
wikidocs/symbologies/Deutsche-Post-Identcode.md
wikidocs/symbologies/Deutsche-Post-Leitcode.md
wikidocs/symbologies/Japan-Post.md
wikidocs/symbologies/MaxiCode.md
wikidocs/symbologies/Royal-Mail.md
wikidocs/symbologies/Mailmark.md
wikidocs/symbologies/Royal-TNT-Post.md
wikidocs/symbologies/USPS-Intelligent-Mail.md
wikidocs/symbologies/USPS-POSTNET.md
wikidocs/symbologies/USPS-PLANET.md
wikidocs/symbologies/USPS-FIM-symbols.md
wikidocs/__pandoc/__symbology-pharma.md
wikidocs/symbologies/Italian-Pharmacode.md
wikidocs/symbologies/Pharmacode.md
wikidocs/symbologies/Two-track-Pharmacode.md
wikidocs/symbologies/PZN.md
wikidocs/symbologies/HIBC-Symbols.md
wikidocs/__pandoc/__symbology-lessused.md
wikidocs/symbologies/BC412.md
wikidocs/symbologies/Channel-Code.md
wikidocs/symbologies/Codabar.md
wikidocs/symbologies/Codablock-F.md
wikidocs/symbologies/Code-11.md
wikidocs/symbologies/Code-16K.md
wikidocs/symbologies/Code-25.md
wikidocs/symbologies/DotCode.md
wikidocs/symbologies/Ultracode.md
wikidocs/symbologies/IATA-2-of-5.md
wikidocs/symbologies/Matrix-2-of-5.md
wikidocs/symbologies/Datalogic-2-of-5.md
wikidocs/symbologies/COOP-2-of-5.md
wikidocs/symbologies/Code-49.md
wikidocs/symbologies/Code-One.md
wikidocs/symbologies/MSI-Plessey.md
wikidocs/symbologies/Plessey.md
wikidocs/symbologies/PosiCode.md
wikidocs/symbologies/Telepen.md
wikidocs/symbologies/Telepen-Numeric.md
wikidocs/symbologies/GS1-Composite-Symbols.md
wikidocs/__pandoc/__symbology-rawtype.md
wikidocs/symbologies/DAFT.md
wikidocs/symbologies/Flattermarken.md
wikidocs/symbologies/Raw.md
wikidocs/__pandoc/__symbology-partial.md
wikidocs/symbologies/EAN-2.md
wikidocs/symbologies/EAN-5.md
wikidocs/symbologies/GS1-Application-Identifier-Standard-Format.md
wikidocs/__pandoc/__options-reference.md
wikidocs/options/Check-Digits.md
wikidocs/options/Input-Processing.md
wikidocs/options/Symbol-Dimensions.md
wikidocs/options/Element-Properties.md
wikidocs/options/Text-Properties.md
wikidocs/options/Text-Positioning.md
wikidocs/options/Border-Properties.md
wikidocs/options/Symbol-Colors.md
wikidocs/options/EAN-UPC-Add-ons.md
wikidocs/options/EAN-UPC-Guards.md
wikidocs/__pandoc/__knowledge-base.md
wikidocs/kb/FAQs.md
wikidocs/kb/Resizing-Symbols.md
wikidocs/kb/Developing-a-Frontend-to-BWIPP.md
THANKS.md
cited-by.md
- name: Store PDF docs
uses: actions/upload-artifact@v4
with:
name: docs-pdf
path: wikidocs/__pandoc/barcodewriter.pdf
docs-html:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: True
- name: Transform wiki
run: |
sed -i \
-e 's/!\[\(.*\)\](\(images\)\/\(.\+\).png)/![\1](wikidocs\/\2\/\3.png)/' \
wikidocs/symbologies/*.md wikidocs/options/*.md wikidocs/kb/*.md
perl -pi -e 's/(([^!]|^)\[[^\]]+\])\(([A-Za-z0-9-]+)\)/\1\L(#\3)/g' \
wikidocs/symbologies/*.md wikidocs/options/*.md wikidocs/kb/*.md
sed -i -e 's/\[!\[GitHub license\].*//' README.md
- name: Build HTML docs
uses: docker://pandoc/latex:2.9
with:
args: >-
-f gfm -t html
--data-dir=wikidocs/__pandoc --template template.html
-M title="Barcode Writer in Pure PostScript"
-B wikidocs/__pandoc/__introduction.html
--toc --toc-depth=3
--self-contained
-o wikidocs/__pandoc/barcodewriter.html
README.md
wikidocs/kb/Quick-Guide.md
src/README.monolithic
src/README.resource
wikidocs/__pandoc/__symbology-reference.md
wikidocs/__pandoc/__symbology-pos.md
wikidocs/symbologies/EAN-13.md
wikidocs/symbologies/EAN-8.md
wikidocs/symbologies/UPC-A.md
wikidocs/symbologies/UPC-E.md
wikidocs/symbologies/ISBN.md
wikidocs/symbologies/ISMN.md
wikidocs/symbologies/ISSN.md
wikidocs/__pandoc/__symbology-2d.md
wikidocs/symbologies/Aztec-Code.md
wikidocs/symbologies/Aztec-Runes.md
wikidocs/symbologies/Data-Matrix.md
wikidocs/symbologies/Data-Matrix-Rectangular.md
wikidocs/symbologies/Data-Matrix-Rectangular-Extension.md
wikidocs/symbologies/Han-Xin-Code.md
wikidocs/symbologies/MicroPDF417.md
wikidocs/symbologies/PDF417.md
wikidocs/symbologies/Compact-PDF417.md
wikidocs/symbologies/QR-Code.md
wikidocs/symbologies/Micro-QR-Code.md
wikidocs/symbologies/Swiss-QR-Code.md
wikidocs/__pandoc/__symbology-1d.md
wikidocs/symbologies/Code-128.md
wikidocs/symbologies/Code-39.md
wikidocs/symbologies/Code-39-Extended.md
wikidocs/symbologies/Code-93.md
wikidocs/symbologies/Code-93-Extended.md
wikidocs/symbologies/Interleaved-2-of-5.md
wikidocs/__pandoc/__symbology-supplychain.md
wikidocs/symbologies/EAN-14.md
wikidocs/symbologies/ITF-14.md
wikidocs/symbologies/SSCC-18.md
wikidocs/symbologies/GS1-DataMatrix.md
wikidocs/symbologies/GS1-QR-Code.md
wikidocs/symbologies/GS1-128.md
wikidocs/symbologies/GS1-DotCode.md
wikidocs/__pandoc/__symbology-gs1db.md
wikidocs/symbologies/GS1-DataBar-Omnidirectional.md
wikidocs/symbologies/GS1-DataBar-Stacked-Omnidirectional.md
wikidocs/symbologies/GS1-DataBar-Expanded.md
wikidocs/symbologies/GS1-DataBar-Expanded-Stacked.md
wikidocs/symbologies/GS1-DataBar-Truncated.md
wikidocs/symbologies/GS1-DataBar-Stacked.md
wikidocs/symbologies/GS1-DataBar-Limited.md
wikidocs/symbologies/GS1-North-American-Coupon-Code.md
wikidocs/__pandoc/__symbology-postal.md
wikidocs/symbologies/Australia-Post.md
wikidocs/symbologies/Deutsche-Post-Identcode.md
wikidocs/symbologies/Deutsche-Post-Leitcode.md
wikidocs/symbologies/Japan-Post.md
wikidocs/symbologies/MaxiCode.md
wikidocs/symbologies/Royal-Mail.md
wikidocs/symbologies/Mailmark.md
wikidocs/symbologies/Royal-TNT-Post.md
wikidocs/symbologies/USPS-Intelligent-Mail.md
wikidocs/symbologies/USPS-POSTNET.md
wikidocs/symbologies/USPS-PLANET.md
wikidocs/symbologies/USPS-FIM-symbols.md
wikidocs/__pandoc/__symbology-pharma.md
wikidocs/symbologies/Italian-Pharmacode.md
wikidocs/symbologies/Pharmacode.md
wikidocs/symbologies/Two-track-Pharmacode.md
wikidocs/symbologies/PZN.md
wikidocs/symbologies/HIBC-Symbols.md
wikidocs/__pandoc/__symbology-lessused.md
wikidocs/symbologies/BC412.md
wikidocs/symbologies/Channel-Code.md
wikidocs/symbologies/Codabar.md
wikidocs/symbologies/Codablock-F.md
wikidocs/symbologies/Code-11.md
wikidocs/symbologies/Code-16K.md
wikidocs/symbologies/Code-25.md
wikidocs/symbologies/DotCode.md
wikidocs/symbologies/Ultracode.md
wikidocs/symbologies/IATA-2-of-5.md
wikidocs/symbologies/Matrix-2-of-5.md
wikidocs/symbologies/Datalogic-2-of-5.md
wikidocs/symbologies/COOP-2-of-5.md
wikidocs/symbologies/Code-49.md
wikidocs/symbologies/Code-One.md
wikidocs/symbologies/MSI-Plessey.md
wikidocs/symbologies/Plessey.md
wikidocs/symbologies/PosiCode.md
wikidocs/symbologies/Telepen.md
wikidocs/symbologies/Telepen-Numeric.md
wikidocs/symbologies/GS1-Composite-Symbols.md
wikidocs/__pandoc/__symbology-rawtype.md
wikidocs/symbologies/DAFT.md
wikidocs/symbologies/Flattermarken.md
wikidocs/symbologies/Raw.md
wikidocs/__pandoc/__symbology-partial.md
wikidocs/symbologies/EAN-2.md
wikidocs/symbologies/EAN-5.md
wikidocs/symbologies/GS1-Application-Identifier-Standard-Format.md
wikidocs/__pandoc/__options-reference.md
wikidocs/options/Check-Digits.md
wikidocs/options/Input-Processing.md
wikidocs/options/Symbol-Dimensions.md
wikidocs/options/Element-Properties.md
wikidocs/options/Text-Properties.md
wikidocs/options/Text-Positioning.md
wikidocs/options/Border-Properties.md
wikidocs/options/Symbol-Colors.md
wikidocs/options/EAN-UPC-Add-ons.md
wikidocs/options/EAN-UPC-Guards.md
wikidocs/__pandoc/__knowledge-base.md
wikidocs/kb/FAQs.md
wikidocs/kb/Resizing-Symbols.md
wikidocs/kb/Developing-a-Frontend-to-BWIPP.md
THANKS.md
cited-by.md
- name: Store HTML docs
uses: actions/upload-artifact@v4
with:
name: docs-html
path: wikidocs/__pandoc/barcodewriter.html
release:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-22.04
permissions: write-all
needs:
- ci
- docs-pdf
- docs-html
steps:
- uses: actions/checkout@v4
- name: Get and check the version
id: get_version
run: |
VERSION="${GITHUB_REF/refs\/tags\//}"
[ "$VERSION" == "$(head -1 CHANGES)" ] || exit 1
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
- name: Make assets
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ghostscript
make -j "$(nproc)" release
- name: Load PDF docs
uses: actions/download-artifact@v4
with:
name: docs-pdf
- name: Load HTML docs
uses: actions/download-artifact@v4
with:
name: docs-html
- name: Create GitHub release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.get_version.outputs.VERSION }}
release_name: ${{ steps.get_version.outputs.VERSION }}
draft: false
prerelease: false
- name: "Upload asset: monolithic tgz"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-monolithic-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_name: "postscriptbarcode-monolithic-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_content_type: application/gzip'
- name: "Upload asset: monolithic zip"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-monolithic-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_name: "postscriptbarcode-monolithic-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_content_type: application/zip
- name: "Upload asset: monolithic-package tgz"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-monolithic-package-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_name: "postscriptbarcode-monolithic-package-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_content_type: application/gzip'
- name: "Upload asset: monolithic-package zip"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-monolithic-package-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_name: "postscriptbarcode-monolithic-package-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_content_type: application/zip
- name: "Upload packaged-resource tgz"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-packaged-resource-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_name: "postscriptbarcode-packaged-resource-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_content_type: application/gzip'
- name: "Upload asset: packaged-resource zip"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-packaged-resource-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_name: "postscriptbarcode-packaged-resource-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_content_type: application/zip
- name: "Upload asset: resource tgz"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-resource-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_name: "postscriptbarcode-resource-package-\
${{ steps.get_version.outputs.VERSION }}.tgz"
asset_content_type: application/gzip'
- name: "Upload asset: resource zip"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: "build/release/postscriptbarcode-resource-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_name: "postscriptbarcode-resource-\
${{ steps.get_version.outputs.VERSION }}.zip"
asset_content_type: application/zip
- name: "Upload asset: PDF docs"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: barcodewriter.pdf
asset_name: postscriptbarcode-manual.pdf
asset_content_type: application/pdf
- name: "Upload asset: HTML docs"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: barcodewriter.html
asset_name: postscriptbarcode-manual.html
asset_content_type: text/html