Skip to content

Commit 234c8d5

Browse files
committed
Merge branch 'development' into video/cloud-encryption-additionalinfo
2 parents 9f56a5f + 4bb7242 commit 234c8d5

File tree

201 files changed

+136638
-2027
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

201 files changed

+136638
-2027
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: development-generate-pdf-files
2+
run-name: "Generate ONVIF specs from the development branch"
3+
4+
on:
5+
push:
6+
branches:
7+
- development
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
env:
14+
DOCBOOK_SOURCE_DIR: ${{ github.workspace }}/doc
15+
DOCBOOK_BUILD_DIR: ${{ github.workspace }}/build
16+
JAVA_VERSION: openjdk-8-jdk
17+
JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
18+
19+
jobs:
20+
build-pdf:
21+
strategy:
22+
fail-fast: true
23+
runs-on: ubuntu-24.04
24+
steps:
25+
- name: Install missing software
26+
run: |
27+
echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | sudo debconf-set-selections
28+
sudo apt update && sudo DEBIAN_FRONTEND=noninteractive apt install -y --force-yes curl unzip $JAVA_VERSION fonts-noto-color-emoji ttf-mscorefonts-installer asciidoctor fd-find ; \
29+
sudo fc-cache -fv
30+
pip install pdf-watermark
31+
- name: Checkout sources
32+
uses: actions/checkout@v3
33+
- name: Configure Java
34+
run: |
35+
echo "####" ; \
36+
export TARGET=$JAVA_HOME/jre/lib/jaxp.properties ; \
37+
sudo touch $TARGET; \
38+
sudo chmod 666 $TARGET ; \
39+
ls -al $JAVA_HOME/jre/lib ; \
40+
sudo echo jdk.xml.maxXMLNameLimit=1000 > $TARGET ; \
41+
sudo echo jdk.xml.xpathExprGrpLimit=0 >> $TARGET ; \
42+
sudo echo jdk.xml.xpathExprOpLimit=0 >> $TARGET ; \
43+
sudo echo jdk.xml.xpathTotalOpLimit=0 >> $TARGET ; \
44+
sudo echo javax.xml.accessExternalStylesheet=file,http >> $TARGET ; \
45+
sudo echo javax.xml.accessExternalDTD=file,http >> $TARGET ; \
46+
sudo echo javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl >> $TARGET ; \
47+
sudo echo javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING=false >> $TARGET ; \
48+
sudo echo jdk.xml.enableExtensionFunctions=true >> $TARGET ; \
49+
sudo chmod 644 $TARGET ;
50+
- name: Download Apache Fop 2.9
51+
uses: ethanjli/cached-download-action@v0.1.3
52+
with:
53+
url: https://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-2.9-bin.tar.gz
54+
destination: /tmp/fop-2.9-bin.tar.gz
55+
- name: Install Fop
56+
run: |
57+
cd /tmp ; sudo tar -xvzf fop-2.9-bin.tar.gz -C /usr/local
58+
- name: Download Apache Xalan-j 2.7.1
59+
uses: ethanjli/cached-download-action@v0.1.3
60+
with:
61+
url: https://archive.apache.org/dist/xml/xalan-j/binaries/xalan-j_2_7_1-bin.zip
62+
destination: /tmp/xalan-j_2_7_1-bin.zip
63+
- name: Install Xalan-j
64+
run: |
65+
sudo mkdir -p $JAVA_HOME/jre/lib/endorsed ; \
66+
cd /tmp ; unzip /tmp/xalan-j_2_7_1-bin.zip ; \
67+
sudo cp /tmp/xalan-j_2_7_1/xalan.jar $JAVA_HOME/jre/lib/endorsed ; \
68+
sudo cp /tmp/xalan-j_2_7_1/serializer.jar $JAVA_HOME/jre/lib/endorsed
69+
- name: Compile PDF files
70+
run: |
71+
export JAVA_TOOL_OPTIONS="-Djavax.xml.XMLConstants.FEATURE_SECURE_PROCESSING=false" ; \
72+
cd ${{ github.workspace }} ; perl build/build.pl
73+
- name: Add draft watermark to the PDF files
74+
run: |
75+
cd ${{ github.workspace }} ; fdfind -e pdf . 'out' -x watermark grid {} "draft"
76+
- name: Calculate the short commit ID
77+
id: vars
78+
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
79+
- name: "Save generated PDF files as build artifact"
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: ONVIF-specs-${{ steps.vars.outputs.sha_short }}
83+
path: |
84+
${{ github.workspace }}/out/*/*.pdf
85+
${{ github.workspace }}/out/*.pdf
86+
compression-level: 9
87+
retention-days: 30
88+
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: dotnet-wsdl-check
2+
run-name: "WSDL files syntax check with .Net 9.0"
3+
4+
on:
5+
push:
6+
paths:
7+
- '**.wsdl'
8+
- '**.xsd'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
dotnet-wsdl-check:
16+
strategy:
17+
fail-fast: true
18+
runs-on: ubuntu-24.04
19+
steps:
20+
- name: Check that remote files are reachable
21+
id: vars
22+
run: |
23+
export MISSING_FILES=0
24+
curl --head http://docs.oasis-open.org/wsn/b-2.xsd || export MISSING_FILES=$((MISSING_FILES+1))
25+
echo "MISSING_FILES=$MISSING_FILES" >> $GITHUB_OUTPUT
26+
echo "MISSING_FILES=$MISSING_FILES"
27+
- name: Install missing software
28+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
29+
run: |
30+
sudo add-apt-repository ppa:dotnet/backports
31+
sudo apt update && sudo apt install dotnet-sdk-9.0
32+
- name: Get branch names.
33+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
34+
id: branch-names
35+
uses: tj-actions/branch-names@v9.0.2
36+
- name: Set target
37+
id: target
38+
run: |
39+
if [ ${{ steps.branch-names.outputs.is_tag }} == 'true' ]; then
40+
echo "TARGET=${{ steps.branch-names.outputs.tag }}" >> $GITHUB_OUTPUT
41+
else
42+
echo "TARGET=${{ steps.branch-names.outputs.current_branch }}" >> $GITHUB_OUTPUT
43+
fi
44+
- name: Run dotnet-svcutil
45+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
46+
run: |
47+
echo "TARGET #${{ steps.target.outputs.TARGET }}#"
48+
dotnet new tool-manifest
49+
dotnet tool install dotnet-svcutil
50+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/accessrules/wsdl/accessrules.wsdl -d . -o AccessRules.cs || /bin/true
51+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl -d . -o Security.cs || /bin/true
52+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/appmgmt/wsdl/appmgmt.wsdl -d . -o AppMgmt.cs || /bin/true
53+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/authenticationbehavior/wsdl/authenticationbehavior.wsdl -d . -o AuthenticationBehavior.cs || /bin/true
54+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/credential/wsdl/credential.wsdl -d . -o Credential.cs || /bin/true
55+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/display/wsdl/index.htm -d . -o Display.cs || /bin/true
56+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/device/wsdl/devicemgmt.wsdl -d . -o Device.cs || /bin/true
57+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/events/wsdl/event.wsdl -d . -o Event.cs || /bin/true
58+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/media/wsdl/media.wsdl -d . -o Media.cs || /bin/true
59+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/pacs/accesscontrol.wsdl -d . -o Accesscontrol.cs || /bin/true
60+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/pacs/doorcontrol.wsdl -d . -o Doorcontrol.cs || /bin/true
61+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/provisioning/wsdl/provisioning.wsdl -d . -o Provisioning.cs || /bin/true
62+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/schedule/wsdl/schedule.wsdl -d . -o Schedule.cs || /bin/true
63+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/thermal/wsdl/thermal.wsdl -d . -o Thermal.cs || /bin/true
64+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver10/uplink/wsdl/uplink.wsdl -d . -o Uplink.cs || /bin/true
65+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver20/analytics/wsdl/analytics.wsdl -d . -o Analytics.cs || /bin/true
66+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver20/imaging/wsdl/imaging.wsdl -d . -o Imaging.cs || /bin/true
67+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver20/media/wsdl/media.wsdl -d . -o Media2.cs || /bin/true
68+
DOTNET_SVCUTIL_TELEMETRY_OPTOUT=1 dotnet tool run dotnet-svcutil https://raw.githubusercontent.com/onvif/specs/refs/heads/${{ steps.target.outputs.TARGET }}/wsdl/ver20/ptz/wsdl/ptz.wsdl -d . -o PTZ.cs || /bin/true
69+
ls *.cs
70+
count=$(ls -1 *.cs 2>/dev/null | wc -l)
71+
echo "Number of generated files: $count"
72+
if [ "$count" -eq 19 ]; then
73+
/bin/true
74+
else
75+
/bin/false
76+
fi
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: generate-svg-from-mathml
2+
run-name: "Generated SVG images from MathML"
3+
4+
on:
5+
push:
6+
branches-ignore:
7+
- master
8+
- development
9+
paths:
10+
- doc/equations/*.xml
11+
- doc/equations/*.mml
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
env:
18+
DOCBOOK_SOURCE_DIR: ${{ github.workspace }}/doc
19+
DOCBOOK_BUILD_DIR: ${{ github.workspace }}/build
20+
JAVA_VERSION: openjdk-11-jdk
21+
JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
22+
23+
jobs:
24+
convert-mathml-to-svg:
25+
strategy:
26+
fail-fast: true
27+
runs-on: ubuntu-24.04
28+
steps:
29+
- name: Install missing software
30+
run: |
31+
sudo apt update && sudo apt install $JAVA_VERSION fd-find
32+
- name: Checkout sources
33+
uses: actions/checkout@v3
34+
- name: Download XML Calabash 3.0.32
35+
uses: ethanjli/cached-download-action@v0.1.3
36+
with:
37+
url: https://codeberg.org/xmlcalabash/xmlcalabash3/releases/download/3.0.32/xmlcalabash-3.0.32.zip
38+
destination: /tmp/xmlcalabash-3.0.32.zip
39+
- name: Install XML Calabash 3.0.32
40+
run: |
41+
cd /tmp ; unzip /tmp/xmlcalabash-3.0.32.zip
42+
- name: Test if it works
43+
run: |
44+
cd /tmp/xmlcalabash-3.0.32 ; java -jar xmlcalabash-app-3.0.32.jar helloWorld.xpl ; ls
45+
echo '<?xml version="1.0" encoding="UTF-8"?><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac> </mrow></math>' > /tmp/xmlcalabash-3.0.32/equation.xml
46+
echo '<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:cx="http://xmlcalabash.com/ns/extensions" version="3.0" name="main"><p:import href="https://xmlcalabash.com/ext/library/diagramming.xpl"/><p:input port="source" content-types="xml"/><p:output port="result" content-types="xml"/><cx:mathml-to-svg></cx:mathml-to-svg></p:declare-step>' > /tmp/xmlcalabash-3.0.32/pipeline.xpl
47+
cd /tmp/xmlcalabash-3.0.32 ; java -jar xmlcalabash-app-3.0.32.jar pipeline.xpl --input:source=equation.xml --output:result=image.svg; ls
48+
cat /tmp/xmlcalabash-3.0.32/image.svg
49+
- name: Convert the equations to SVG
50+
run: |
51+
cd ${{ github.workspace }} ; fdfind -e xml . 'doc/equations' -x java -jar /tmp/xmlcalabash-3.0.32/xmlcalabash-app-3.0.32.jar /tmp/xmlcalabash-3.0.32/pipeline.xpl --input:source={} --output:result={.}.svg
52+
cd ${{ github.workspace }} ; fdfind -e svg . 'doc/equations' -x sed -i 's/<?xml version="1.0" encoding="UTF-8"?>//g' {}
53+
ls ${{ github.workspace }}/doc/equations
54+
- name: Add and commit regenerated SVG files
55+
uses: EndBug/add-and-commit@v9
56+
with:
57+
add: ${{ github.workspace }}/doc/equations/*.svg
58+
message: 'Automatically generated SVG images'
59+
committer_name: GitHub Actions
60+
committer_email: actions@github.com
61+
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: gsoap-wsdl-check
2+
run-name: "WSDL files syntax check with gSoap"
3+
4+
on:
5+
push:
6+
paths:
7+
- '**.wsdl'
8+
- '**.xsd'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
gsoap-wsdl-check:
16+
strategy:
17+
fail-fast: true
18+
runs-on: ubuntu-24.04
19+
steps:
20+
- name: Check that remote files are reachable
21+
id: vars
22+
run: |
23+
export MISSING_FILES=0
24+
curl --head http://docs.oasis-open.org/wsn/b-2.xsd || export MISSING_FILES=$((MISSING_FILES+1))
25+
echo "MISSING_FILES=$MISSING_FILES" >> $GITHUB_OUTPUT
26+
echo "MISSING_FILES=$MISSING_FILES"
27+
- name: Install missing software
28+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
29+
run: |
30+
sudo apt update && sudo apt install gcc g++ curl autoconf automake cmake bison flex libssl-dev zlib1g-dev make
31+
- name: Checkout tools repo
32+
uses: actions/checkout@v6
33+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
34+
with:
35+
repository: onvif/gsoap-wsdl-checker
36+
path: gsoap-wsdl-checker
37+
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
38+
- name: Get branch names.
39+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
40+
id: branch-names
41+
uses: tj-actions/branch-names@v9.0.2
42+
- name: Install gsoap
43+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
44+
run: |
45+
cd gsoap-wsdl-checker
46+
cmake CMakeLists.txt -DBRANCH=${{ steps.branch-names.outputs.current_branch }}
47+
make gsoap
48+
- name: Compile the WDSL files
49+
if: ${{ steps.vars.outputs.MISSING_FILES == 0 }}
50+
run: |
51+
cd gsoap-wsdl-checker
52+
make
53+
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Prerequisites on a local PC -> not currently necessary, since signing is disabled.
2+
#
3+
# $ sudo apt install gnupg
4+
# $ gpg --quick-gen-key help@onvif.org default default 2029-03-31
5+
# $ gpg --output public-key.pgp --armor --export help@onvif.org
6+
# $ gpg --output private-key.pgp --armor --export-private-key help@onvif.org
7+
#
8+
# In Github, under Settings -> Secrets and Variables -> Actions create the following repository secrets
9+
# PRIVATE_KEY with the content of private-key.pgp
10+
# PASSPHRASE with the passphrase chosen when creating the key
11+
#
12+
# Finally, upload public-key.pgp to the ONVIF website and store the PASSPHRASE in the keypass wallet
13+
14+
name: master-generate-pdf-files-from-tag
15+
run-name: "Generate ONVIF specs from a tag"
16+
17+
on:
18+
push:
19+
tags: '[0-9][0-9].[0-9][0-9]'
20+
21+
concurrency:
22+
group: ${{ github.workflow }}-${{ github.ref }}
23+
cancel-in-progress: true
24+
25+
env:
26+
DOCBOOK_SOURCE_DIR: ${{ github.workspace }}/doc
27+
DOCBOOK_BUILD_DIR: ${{ github.workspace }}/build
28+
JAVA_VERSION: openjdk-8-jdk
29+
JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
30+
31+
jobs:
32+
build-pdf:
33+
strategy:
34+
fail-fast: true
35+
runs-on: ubuntu-24.04
36+
steps:
37+
- name: Install missing software
38+
run: |
39+
echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | sudo debconf-set-selections
40+
sudo apt update && sudo DEBIAN_FRONTEND=noninteractive apt install -y --force-yes curl unzip $JAVA_VERSION fonts-noto-color-emoji ttf-mscorefonts-installer asciidoctor gnupg ; \
41+
sudo fc-cache -fv
42+
- name: Checkout sources
43+
uses: actions/checkout@v3
44+
- name: Configure Java
45+
run: |
46+
echo "####" ; \
47+
export TARGET=$JAVA_HOME/jre/lib/jaxp.properties ; \
48+
sudo touch $TARGET; \
49+
sudo chmod 666 $TARGET ; \
50+
ls -al $JAVA_HOME/jre/lib ; \
51+
sudo echo jdk.xml.maxXMLNameLimit=1000 > $TARGET ; \
52+
sudo echo jdk.xml.xpathExprGrpLimit=0 >> $TARGET ; \
53+
sudo echo jdk.xml.xpathExprOpLimit=0 >> $TARGET ; \
54+
sudo echo jdk.xml.xpathTotalOpLimit=0 >> $TARGET ; \
55+
sudo echo javax.xml.accessExternalStylesheet=file,http >> $TARGET ; \
56+
sudo echo javax.xml.accessExternalDTD=file,http >> $TARGET ; \
57+
sudo echo javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl >> $TARGET ; \
58+
sudo echo javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING=false >> $TARGET ; \
59+
sudo echo jdk.xml.enableExtensionFunctions=true >> $TARGET ; \
60+
sudo chmod 644 $TARGET ;
61+
- name: Download Apache Fop 2.9
62+
uses: ethanjli/cached-download-action@v0.1.3
63+
with:
64+
url: https://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-2.9-bin.tar.gz
65+
destination: /tmp/fop-2.9-bin.tar.gz
66+
- name: Install Fop
67+
run: |
68+
cd /tmp ; sudo tar -xvzf fop-2.9-bin.tar.gz -C /usr/local
69+
- name: Download Apache Xalan-j 2.7.1
70+
uses: ethanjli/cached-download-action@v0.1.3
71+
with:
72+
url: https://archive.apache.org/dist/xml/xalan-j/binaries/xalan-j_2_7_1-bin.zip
73+
destination: /tmp/xalan-j_2_7_1-bin.zip
74+
- name: Install Xalan-j
75+
run: |
76+
sudo mkdir -p $JAVA_HOME/jre/lib/endorsed ; \
77+
cd /tmp ; unzip /tmp/xalan-j_2_7_1-bin.zip ; \
78+
sudo cp /tmp/xalan-j_2_7_1/xalan.jar $JAVA_HOME/jre/lib/endorsed ; \
79+
sudo cp /tmp/xalan-j_2_7_1/serializer.jar $JAVA_HOME/jre/lib/endorsed
80+
- name: Compile PDF files
81+
run: |
82+
export JAVA_TOOL_OPTIONS="-Djavax.xml.XMLConstants.FEATURE_SECURE_PROCESSING=false" ; \
83+
cd ${{ github.workspace }} ; perl build/build.pl
84+
#- name: Import GPG key
85+
# uses: crazy-max/ghaction-import-gpg@v6
86+
# with:
87+
# gpg_private_key: ${{ secrets.PRIVATE_KEY }}
88+
# passphrase: ${{ secrets.PASSPHRASE }}
89+
# git_user_signingkey: true
90+
# git_commit_gpgsign: true
91+
#- name: Digitally sign the documents
92+
# env:
93+
# PRIVATE_KEY: ${{secrets.PRIVATE_KEY}}
94+
# PASSPHRASE: ${{secrets.PASSPHRASE}}
95+
# run: |
96+
# find . -name "*.pdf" -exec gpg -v --passphrase "$PASSPHRASE" --detach-sign {} \;
97+
- name: Calculate the short commit ID
98+
id: vars
99+
run: echo "source_tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
100+
- name: "Save generated PDF files as build artifact"
101+
uses: actions/upload-artifact@v4
102+
with:
103+
name: ONVIF-specs-${{ steps.vars.outputs.source_tag }}
104+
path: |
105+
${{ github.workspace }}/out/*/*.pdf
106+
${{ github.workspace }}/out/*/*.pdf.sig
107+
${{ github.workspace }}/out/*.pdf
108+
${{ github.workspace }}/out/*.pdf.sig
109+
compression-level: 9
110+

0 commit comments

Comments
 (0)