|
1 | | -name: liboqs-java CI |
2 | | - |
3 | | -on: |
4 | | - push: |
5 | | - branches: ["**"] |
6 | | - pull_request: |
7 | | - branches: ["**"] |
8 | | - repository_dispatch: |
9 | | - types: ["**"] |
10 | | - |
11 | | -jobs: |
12 | | - workflowcheck: |
13 | | - name: Check validity of GitHub workflows |
14 | | - runs-on: ubuntu-latest |
15 | | - container: openquantumsafe/ci-ubuntu-latest:latest |
16 | | - steps: |
17 | | - - name: Checkout code |
18 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
19 | | - - name: Ensure GitHub actions are valid |
20 | | - run: actionlint -shellcheck "" # run *without* shellcheck |
21 | | - |
22 | | - linux: |
23 | | - needs: workflowcheck |
24 | | - runs-on: ubuntu-latest |
25 | | - container: openquantumsafe/ci-ubuntu-latest:latest |
26 | | - steps: |
27 | | - - name: Checkout liboqs-java |
28 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
29 | | - - name: Checkout liboqs main |
30 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
31 | | - with: |
32 | | - repository: open-quantum-safe/liboqs |
33 | | - path: liboqs |
34 | | - ref: main |
35 | | - - name: Build liboqs |
36 | | - run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && ninja install |
37 | | - working-directory: liboqs |
38 | | - - name: Resolve all maven project dependencies |
39 | | - run: mvn dependency:go-offline |
40 | | - - name: Build liboqs-java and run tests |
41 | | - run: export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" && mvn package |
42 | | - - name: Compile KEM, Signatures and Rand examples |
43 | | - run: | |
44 | | - javac -cp target/liboqs-java.jar examples/KEMExample.java && |
45 | | - javac -cp target/liboqs-java.jar examples/SigExample.java && |
46 | | - javac -cp target/liboqs-java.jar examples/RandExample.java |
47 | | -
|
48 | | - macos: |
49 | | - needs: workflowcheck |
50 | | - runs-on: macos-latest |
51 | | - steps: |
52 | | - - name: Install Python |
53 | | - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5 |
54 | | - with: |
55 | | - python-version: '3.12' |
56 | | - - name: Checkout liboqs-java |
57 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
58 | | - - name: Checkout liboqs main |
59 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
60 | | - with: |
61 | | - repository: open-quantum-safe/liboqs |
62 | | - path: liboqs |
63 | | - ref: main |
64 | | - - name: Install liboqs dependencies |
65 | | - run: | |
66 | | - env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja openssl@3 |
67 | | - echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV |
68 | | - export LDFLAGS="-L$(brew --prefix openssl@3)/lib" |
69 | | - echo "LDFLAGS=$LDFLAGS" |
70 | | - - name: Build liboqs |
71 | | - run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && sudo ninja install |
72 | | - working-directory: liboqs |
73 | | - - name: Resolve all maven project dependencies |
74 | | - run: mvn dependency:go-offline |
75 | | - - name: Build liboqs-java and run tests |
76 | | - run: | |
77 | | - export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/lib" |
78 | | - export OPENSSL_PATH=$(brew --prefix openssl@3)/lib |
79 | | - mvn -P macosx "-Dlinker.end.option=/usr/local/lib/liboqs.a -L$OPENSSL_PATH -lcrypto" package |
80 | | - - name: Compile KEM, Signatures and Rand examples |
81 | | - run: | |
82 | | - javac -cp target/liboqs-java.jar examples/KEMExample.java && |
83 | | - javac -cp target/liboqs-java.jar examples/SigExample.java && |
84 | | - javac -cp target/liboqs-java.jar examples/RandExample.java |
85 | | -
|
86 | | - windows: |
87 | | - needs: workflowcheck |
88 | | - runs-on: windows-latest |
89 | | - steps: |
90 | | - - name: Checkout liboqs-java |
91 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
92 | | - |
93 | | - - name: Install MSYS2 |
94 | | - uses: msys2/setup-msys2@v2 |
95 | | - with: |
96 | | - update: true |
97 | | - install: >- |
98 | | - mingw-w64-x86_64-gcc |
99 | | - mingw-w64-x86_64-ninja |
100 | | - mingw-w64-x86_64-cmake |
101 | | - make |
102 | | -
|
103 | | - - name: Set up JDK |
104 | | - uses: actions/setup-java@v4 |
105 | | - with: |
106 | | - distribution: 'temurin' |
107 | | - java-version: '8' |
108 | | - cache: 'maven' |
109 | | - |
110 | | - - name: Checkout liboqs main |
111 | | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
112 | | - with: |
113 | | - repository: open-quantum-safe/liboqs |
114 | | - path: liboqs |
115 | | - ref: main |
116 | | - |
117 | | - - name: Build liboqs (static library) |
118 | | - shell: msys2 {0} |
119 | | - run: | |
120 | | - cd liboqs |
121 | | - mkdir build |
122 | | - cd build |
123 | | - cmake .. -G "Ninja" -DOQS_BUILD_ONLY_LIB=ON -DBUILD_SHARED_LIBS=OFF |
124 | | - ninja |
125 | | -
|
126 | | - - name: Resolve Maven dependencies |
127 | | - run: mvn dependency:go-offline |
128 | | - |
129 | | - - name: Build liboqs-java and run tests |
130 | | - run: | |
131 | | - $env:Path += ";$env:GITHUB_WORKSPACE\liboqs\build\lib" |
132 | | - $includeDir = "$env:GITHUB_WORKSPACE\liboqs\build\include" |
133 | | - $libDir = "$env:GITHUB_WORKSPACE\liboqs\build\lib" |
134 | | - mvn -Pwindows "-Dliboqs.include.dir=$includeDir" "-Dliboqs.lib.dir=$libDir" package |
135 | | - - name: Compile KEM, Signatures and Rand examples |
136 | | - run: | |
137 | | - javac -cp target\liboqs-java.jar examples\KEMExample.java |
138 | | - javac -cp target\liboqs-java.jar examples\SigExample.java |
139 | | - javac -cp target\liboqs-java.jar examples\RandExample.java |
| 1 | +name: liboqs-java CI |
| 2 | + |
| 3 | +on: |
| 4 | + push: |
| 5 | + branches: ["**"] |
| 6 | + pull_request: |
| 7 | + branches: ["**"] |
| 8 | + repository_dispatch: |
| 9 | + types: ["**"] |
| 10 | + |
| 11 | +jobs: |
| 12 | + workflowcheck: |
| 13 | + name: Check validity of GitHub workflows |
| 14 | + runs-on: ubuntu-latest |
| 15 | + container: openquantumsafe/ci-ubuntu-latest:latest |
| 16 | + steps: |
| 17 | + - name: Checkout code |
| 18 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 19 | + - name: Ensure GitHub actions are valid |
| 20 | + run: actionlint -shellcheck "" # run *without* shellcheck |
| 21 | + |
| 22 | + linux: |
| 23 | + needs: workflowcheck |
| 24 | + runs-on: ubuntu-latest |
| 25 | + container: openquantumsafe/ci-ubuntu-latest:latest |
| 26 | + steps: |
| 27 | + - name: Checkout liboqs-java |
| 28 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 29 | + - name: Checkout liboqs main |
| 30 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 31 | + with: |
| 32 | + repository: open-quantum-safe/liboqs |
| 33 | + path: liboqs |
| 34 | + ref: main |
| 35 | + - name: Build liboqs |
| 36 | + run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && ninja install |
| 37 | + working-directory: liboqs |
| 38 | + - name: Resolve all maven project dependencies |
| 39 | + run: mvn dependency:go-offline |
| 40 | + - name: Build liboqs-java and run tests |
| 41 | + run: export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" && mvn package |
| 42 | + - name: Compile KEM, Signatures and Rand examples |
| 43 | + run: | |
| 44 | + javac -cp target/liboqs-java.jar examples/KEMExample.java && |
| 45 | + javac -cp target/liboqs-java.jar examples/SigExample.java && |
| 46 | + javac -cp target/liboqs-java.jar examples/RandExample.java |
| 47 | +
|
| 48 | + macos: |
| 49 | + needs: workflowcheck |
| 50 | + runs-on: macos-latest |
| 51 | + steps: |
| 52 | + - name: Install Python |
| 53 | + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5 |
| 54 | + with: |
| 55 | + python-version: '3.12' |
| 56 | + - name: Checkout liboqs-java |
| 57 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 58 | + - name: Checkout liboqs main |
| 59 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 60 | + with: |
| 61 | + repository: open-quantum-safe/liboqs |
| 62 | + path: liboqs |
| 63 | + ref: main |
| 64 | + - name: Install liboqs dependencies |
| 65 | + run: | |
| 66 | + env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja openssl@3 |
| 67 | + echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV |
| 68 | + export LDFLAGS="-L$(brew --prefix openssl@3)/lib" |
| 69 | + echo "LDFLAGS=$LDFLAGS" |
| 70 | + - name: Build liboqs |
| 71 | + run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && sudo ninja install |
| 72 | + working-directory: liboqs |
| 73 | + - name: Resolve all maven project dependencies |
| 74 | + run: mvn dependency:go-offline |
| 75 | + - name: Build liboqs-java and run tests |
| 76 | + run: | |
| 77 | + export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/lib" |
| 78 | + export OPENSSL_PATH=$(brew --prefix openssl@3)/lib |
| 79 | + mvn -P macosx "-Dlinker.end.option=/usr/local/lib/liboqs.a -L$OPENSSL_PATH -lcrypto" package |
| 80 | + - name: Compile KEM, Signatures and Rand examples |
| 81 | + run: | |
| 82 | + javac -cp target/liboqs-java.jar examples/KEMExample.java && |
| 83 | + javac -cp target/liboqs-java.jar examples/SigExample.java && |
| 84 | + javac -cp target/liboqs-java.jar examples/RandExample.java |
| 85 | +
|
| 86 | + windows: |
| 87 | + needs: workflowcheck |
| 88 | + runs-on: windows-latest |
| 89 | + steps: |
| 90 | + - name: Checkout liboqs-java |
| 91 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 92 | + |
| 93 | + - name: Install MSYS2 |
| 94 | + uses: msys2/setup-msys2@v2 |
| 95 | + with: |
| 96 | + update: true |
| 97 | + install: >- |
| 98 | + mingw-w64-x86_64-gcc |
| 99 | + mingw-w64-x86_64-ninja |
| 100 | + mingw-w64-x86_64-cmake |
| 101 | + make |
| 102 | +
|
| 103 | + - name: Set up JDK |
| 104 | + uses: actions/setup-java@v4 |
| 105 | + with: |
| 106 | + distribution: 'temurin' |
| 107 | + java-version: '8' |
| 108 | + cache: 'maven' |
| 109 | + |
| 110 | + - name: Checkout liboqs main |
| 111 | + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 |
| 112 | + with: |
| 113 | + repository: open-quantum-safe/liboqs |
| 114 | + path: liboqs |
| 115 | + ref: main |
| 116 | + |
| 117 | + - name: Build liboqs (static library) |
| 118 | + shell: msys2 {0} |
| 119 | + run: | |
| 120 | + cd liboqs |
| 121 | + mkdir build |
| 122 | + cd build |
| 123 | + cmake .. -G "Ninja" -DOQS_BUILD_ONLY_LIB=ON -DBUILD_SHARED_LIBS=OFF |
| 124 | + ninja |
| 125 | +
|
| 126 | + - name: Resolve Maven dependencies |
| 127 | + run: mvn dependency:go-offline |
| 128 | + |
| 129 | + - name: Build liboqs-java and run tests |
| 130 | + run: | |
| 131 | + $env:Path += ";$env:GITHUB_WORKSPACE\liboqs\build\lib" |
| 132 | + $includeDir = "$env:GITHUB_WORKSPACE\liboqs\build\include" |
| 133 | + $libDir = "$env:GITHUB_WORKSPACE\liboqs\build\lib" |
| 134 | + mvn -Pwindows "-Dliboqs.include.dir=$includeDir" "-Dliboqs.lib.dir=$libDir" package |
| 135 | + - name: Compile KEM, Signatures and Rand examples |
| 136 | + run: | |
| 137 | + javac -cp target\liboqs-java.jar examples\KEMExample.java |
| 138 | + javac -cp target\liboqs-java.jar examples\SigExample.java |
| 139 | + javac -cp target\liboqs-java.jar examples\RandExample.java |
0 commit comments