Compare commits

...

36 Commits

Author SHA1 Message Date
Fritz Windisch
d9f079450b Set osx architectures 2023-08-07 18:16:05 +02:00
Fritz Windisch
40bc4315bc Manually set java home 2023-08-07 17:59:42 +02:00
Fritz Windisch
c2da6c8474 Manually set java home 2023-08-07 17:55:20 +02:00
Fritz Windisch
bfe55d1f9d Manually set java home 2023-08-07 17:49:41 +02:00
Fritz Windisch
465645a1dd Manually set java home 2023-08-07 17:33:10 +02:00
Fritz Windisch
286fcff999 Manually set java home 2023-08-07 17:21:12 +02:00
Fritz Windisch
70817e5648 Manually set java home 2023-08-07 17:16:34 +02:00
Fritz Windisch
422d2577d0 Manually set java home 2023-08-07 17:11:40 +02:00
Fritz Windisch
70be54d496 Patch further jetbrains changes 2023-08-07 17:04:03 +02:00
Fritz Windisch
fc7b23686b Patch further jetbrains changes 2023-08-07 16:54:01 +02:00
Fritz Windisch
625ddf50da Patch jetbrains download url 2023-08-07 16:42:31 +02:00
Fritz Windisch
fc16a1d087 Begin build scripts for jetbrains cef 2023-08-07 15:59:20 +02:00
Fritz Windisch
a88915018e Update builder for versions > 110 2023-08-07 15:38:47 +02:00
FriwiDev
07efaec193 Update scripts 2023-02-12 23:34:23 +01:00
FriwiDev
c7bc921d5c Update workflows 2023-02-12 23:10:30 +01:00
Friwi
9d76d6db93 Merge pull request #8 from Osiris-Team/master
Update to new github permissions
2023-02-08 11:54:55 +01:00
Osiris-Team
bd57943116 Update build-all.yml 2023-02-07 22:07:31 +01:00
Osiris-Team
96fb8eae4b Update build-all.yml 2023-02-04 15:54:11 +01:00
Friwi
a516b46ab4 Just macos things 2023-01-30 05:31:00 +01:00
Friwi
2ea4e2bbbf Fix build error on macosx 2023-01-30 05:10:53 +01:00
FriwiDev
dd02d6770e Fix typo 2022-11-02 18:54:23 +01:00
FriwiDev
dd59e71a3b Fix release uploading 2022-11-02 18:42:39 +01:00
FriwiDev
d6a724e2dc Update macos build specs in readme 2022-11-01 06:50:48 +01:00
FriwiDev
07168d04d4 Fix macos runner version to 12 2022-11-01 06:47:19 +01:00
FriwiDev
c7d55dc880 Improve check for code signatures 2022-11-01 06:45:20 +01:00
FriwiDev
bc4c3dc942 Remove notarization output from bundle 2022-11-01 06:31:34 +01:00
FriwiDev
5cdf560ad9 Remove notarization zips from bundle 2022-11-01 06:19:46 +01:00
FriwiDev
5d3efd3e67 Add signature to JavaAppLauncher 2022-11-01 05:48:59 +01:00
FriwiDev
611beff7ca Show notarytool logs 2022-11-01 05:28:56 +01:00
FriwiDev
7b7fe2c47e Fix issuer command line switch 2022-11-01 04:33:21 +01:00
FriwiDev
0cae73fa86 Switch macos builds from altool to notarytool 2022-11-01 04:25:27 +01:00
FriwiDev
fb1f044958 Correctly create out dir on macos, add debug to notarization upload 2022-11-01 03:36:23 +01:00
FriwiDev
af7c44af6a Fix bugs in macosx build 2022-11-01 03:19:04 +01:00
FriwiDev
5919dccf70 Update macos runner version 2022-11-01 03:00:27 +01:00
FriwiDev
07b422bca6 Update github actions dependencies further 2022-11-01 02:36:49 +01:00
FriwiDev
f5ef9cb8b1 Update github actions dependencies 2022-11-01 02:29:07 +01:00
21 changed files with 216 additions and 260 deletions

View File

@@ -15,42 +15,34 @@ on:
jobs:
create-release:
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
release_tag_name: ${{ env.release_tag_name }}
build_meta: ${{ env.build_meta }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Generate release info
run: |
cd release_gen
chmod +x create_release_info.sh
./create_release_info.sh ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} ${{github.run_number}} ${{github.repository}}
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
name: ${{env.release_name}}
tag_name: ${{env.release_tag_name}}
body_path: release_gen/release_message.md
run: |
gh release create ${{env.release_tag_name}} --title "${{env.release_name}}" --notes-file release_gen/release_message.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add LICENSE
uses: actions/upload-release-asset@v1
run: |
gh release upload ${{env.release_tag_name}} release_gen/LICENSE
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release_gen/LICENSE
asset_name: LICENSE
asset_content_type: text/plain
- name: Add build_meta.json
uses: actions/upload-release-asset@v1
- name: Add build_meta.json
run: |
gh release upload ${{env.release_tag_name}} release_gen/build_meta.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release_gen/build_meta.json
asset_name: build_meta.json
asset_content_type: application/json
- name: Announce build_meta.json download url to other jobs
run: |
cd release_gen
@@ -60,160 +52,161 @@ jobs:
build-linux-amd64:
runs-on: ubuntu-latest
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
chmod +x compile_linux.sh
./compile_linux.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
mv out/binary_distrib.tar.gz out/linux-amd64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/linux-amd64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: linux-amd64.tar.gz
asset_content_type: application/octet-stream
build-linux-arm64:
runs-on: ubuntu-latest
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
chmod +x compile_linux.sh
./compile_linux.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
mv out/binary_distrib.tar.gz out/linux-arm64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/linux-arm64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: linux-arm64.tar.gz
asset_content_type: application/octet-stream
build-linux-arm:
runs-on: ubuntu-latest
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
chmod +x compile_linux.sh
./compile_linux.sh arm/v6 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
mv out/binary_distrib.tar.gz out/linux-arm.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/linux-arm.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: linux-arm.tar.gz
asset_content_type: application/octet-stream
build-windows-amd64:
runs-on: windows-2019
runs-on: windows-2022
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
run: |
compile_windows.bat amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
move out/binary_distrib.tar.gz out/windows-amd64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/windows-amd64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: windows-amd64.tar.gz
asset_content_type: application/octet-stream
build-windows-i386:
runs-on: windows-2019
runs-on: windows-2022
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
run: |
compile_windows.bat 386 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
move out/binary_distrib.tar.gz out/windows-i386.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/windows-i386.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: windows-i386.tar.gz
asset_content_type: application/octet-stream
build-windows-arm64:
runs-on: windows-2019
runs-on: windows-2022
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
run: |
compile_windows.bat arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
move out/binary_distrib.tar.gz out/windows-arm64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/windows-arm64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: windows-arm64.tar.gz
asset_content_type: application/octet-stream
build-macosx-amd64:
runs-on: macos-10.15
runs-on: macos-12
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Setup environment
run: |
chmod +x scripts/install_macos_dependencies.sh
./scripts/install_macos_dependencies.sh
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -245,42 +238,42 @@ jobs:
name: Build
run: |
chmod +x compile_macosx.sh
./compile_macosx.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_NAME }} ${{ secrets.APPLE_API_KEY_ISSUER }}
./compile_macosx.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_ID }} "${HOME}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_NAME }}.p8" ${{ secrets.APPLE_API_KEY_ISSUER }}
- name: Clean up keychain
if: ${{ always() }}
run: |
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
rm -rf "${HOME}/private_keys"
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
mv out/binary_distrib.tar.gz out/macosx-amd64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/macosx-amd64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: macosx-amd64.tar.gz
asset_content_type: application/octet-stream
- name: Export javadoc
uses: actions/upload-release-asset@v1
run: |
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/javadoc.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/javadoc.tar.gz
asset_name: javadoc.tar.gz
asset_content_type: application/octet-stream
build-macosx-arm64:
runs-on: macos-10.15
runs-on: macos-12
needs: create-release
permissions:
contents: write
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Setup environment
run: |
chmod +x scripts/install_macos_dependencies.sh
./scripts/install_macos_dependencies.sh
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -312,20 +305,17 @@ jobs:
name: Build
run: |
chmod +x compile_macosx.sh
./compile_macosx.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_NAME }} ${{ secrets.APPLE_API_KEY_ISSUER }}
./compile_macosx.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_ID }} "${HOME}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_NAME }}.p8" ${{ secrets.APPLE_API_KEY_ISSUER }}
- name: Clean up keychain
if: ${{ always() }}
run: |
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
rm -rf "${HOME}/private_keys"
- name: Export distribution
uses: actions/upload-release-asset@v1
run: |
mv out/binary_distrib.tar.gz out/macosx-arm64.tar.gz
gh release upload ${{needs.create-release.outputs.release_tag_name}} out/macosx-arm64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: out/binary_distrib.tar.gz
asset_name: macosx-arm64.tar.gz
asset_content_type: application/octet-stream

View File

@@ -16,14 +16,14 @@ jobs:
build-linux-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
@@ -31,7 +31,7 @@ jobs:
./compile_linux.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: linux-amd64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -16,14 +16,14 @@ jobs:
build-linux-arm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
@@ -31,7 +31,7 @@ jobs:
./compile_linux.sh arm/v6 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: linux-arm.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -16,14 +16,14 @@ jobs:
build-linux-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Build
run: |
@@ -31,7 +31,7 @@ jobs:
./compile_linux.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: linux-arm64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,14 +14,19 @@ on:
jobs:
build-macosx-amd64:
runs-on: macos-10.15
runs-on: macos-12
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Setup environment
run: |
chmod +x scripts/install_macos_dependencies.sh
./scripts/install_macos_dependencies.sh
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -53,7 +58,7 @@ jobs:
name: Build
run: |
chmod +x compile_macosx.sh
./compile_macosx.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_NAME }} ${{ secrets.APPLE_API_KEY_ISSUER }}
./compile_macosx.sh amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_ID }} "${HOME}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_NAME }}.p8" ${{ secrets.APPLE_API_KEY_ISSUER }}
- name: Clean up keychain
if: ${{ always() }}
run: |
@@ -61,7 +66,7 @@ jobs:
rm -rf "${HOME}/private_keys"
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: macosx-amd64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,14 +14,19 @@ on:
jobs:
build-macosx-arm64:
runs-on: macos-10.15
runs-on: macos-12
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Setup environment
run: |
chmod +x scripts/install_macos_dependencies.sh
./scripts/install_macos_dependencies.sh
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -53,7 +58,7 @@ jobs:
name: Build
run: |
chmod +x compile_macosx.sh
./compile_macosx.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_NAME }} ${{ secrets.APPLE_API_KEY_ISSUER }}
./compile_macosx.sh arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }} "${{ secrets.APPLE_BUILD_CERTIFICATE_NAME }}" ${{ secrets.APPLE_TEAM_NAME }} ${{ secrets.APPLE_API_KEY_ID }} "${HOME}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_NAME }}.p8" ${{ secrets.APPLE_API_KEY_ISSUER }}
- name: Clean up keychain
if: ${{ always() }}
run: |
@@ -61,7 +66,7 @@ jobs:
rm -rf "${HOME}/private_keys"
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: macosx-arm64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,9 +14,9 @@ on:
jobs:
build-windows-amd64:
runs-on: windows-2019
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
@@ -24,7 +24,7 @@ jobs:
compile_windows.bat amd64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: windows-amd64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,9 +14,9 @@ on:
jobs:
build-windows-arm64:
runs-on: windows-2019
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
@@ -24,7 +24,7 @@ jobs:
compile_windows.bat arm64 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: windows-arm64.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,9 +14,9 @@ on:
jobs:
build-windows-i386:
runs-on: windows-2019
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
-
name: Build
shell: cmd
@@ -24,7 +24,7 @@ jobs:
compile_windows.bat 386 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: windows-i386.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -22,7 +22,6 @@ COPY natives /natives
#Copy cmake patching script
COPY scripts/patch_cmake.py .
COPY patch/CMakeLists.txt.patch .
#Copy and launch run script
COPY scripts/run_linux.sh .

View File

@@ -19,6 +19,9 @@ WORKDIR /builder
#Copy existing sources, if any
COPY jcef /jcef
#Copy cmake patching script
COPY scripts/patch_cmake.py .
#Copy and launch run script
COPY scripts/run_linux_prebuild.sh .
RUN chmod +x run_linux_prebuild.sh

View File

@@ -4,7 +4,6 @@ WORKDIR C:/
#Copy cmake patching script
COPY scripts/patch_cmake.py .
COPY patch/CMakeLists.txt.patch .
#Copy and launch run script
COPY scripts/run_windows.bat .

View File

@@ -19,7 +19,7 @@
</tr>
<tr>
<td><b>Java</b></td>
<td>OpenJDK 11</td>
<td>OpenJDK 17</td>
<td>Oracle JDK 8</td>
<td>Microsoft JDK 11</td>
<td>Temurin JDK 8</td>
@@ -27,16 +27,16 @@
<tr>
<td><b>Compiler</b></td>
<td>GCC 10</td>
<td>VS 2019</td>
<td>VS 2019</td>
<td>Xcode 12</td>
<td>VS 2022</td>
<td>VS 2022</td>
<td>Xcode 13</td>
</tr>
<tr>
<td><b>Build</b></td>
<td>Python 3.7; <code>ninja</code></td>
<td>Python 3.7; <code>ninja</code></td>
<td>Python 3.7; <code>ninja</code></td>
<td>Python 2.7; <code>ninja</code>; SDK10.11</td>
<td>Python 2.7; <code>ninja</code>; SDK10.13</td>
</tr>
<tr>
<td><b>Limitations</b></td>
@@ -68,12 +68,15 @@ Required Actions Secrets for signing and notarization:
+`APPLE_API_KEY_BASE64`: Your API key to access the Apple Notarization Service (in base64)
+`APPLE_API_KEY_ISSUER`: UUID of issuer (can be found along with your generated key in Apple Dev Console)
+`APPLE_API_KEY_NAME`: The name to be used for your API key on the runner (can be random)
+`APPLE_API_KEY_ID`: The ID of your key (10 digit code)
+`APPLE_BUILD_CERTIFICATE_BASE64`: Base64 encoded pkcs12 certificate file from Apple to use for signing
+`APPLE_BUILD_CERTIFICATE_NAME`: Your certificate name (usually starts with `Developer ID Application`)
+`APPLE_P12_PASSWORD`: Password of your pkcs12 certificate file
+`APPLE_KEYCHAIN_PASSWORD`: A random password to use for the keychain on the runner
+`APPLE_TEAM_NAME`: Your apple team name, part of the certificate name (10 digit id in brackets)`
You can obtain the api key [here](https://appstoreconnect.apple.com/access/api) (make sure key has developer access) and the certificate [here](https://developer.apple.com/account/resources/certificates/list) (choose Developer ID Application).
### Building locally
To build locally, put your sources in the `jcef` directory of this repository, or leave it empty to clone a repository.

View File

@@ -2,7 +2,7 @@
if [ $# -lt 2 ] || [ $# -eq 3 ]
then
echo "Usage: ./compile_macosx.sh <architecture> <buildType> [<gitrepo> <gitref>] [<certname> <teamname> <applekeyid> <applekeyissuer>]"
echo "Usage: ./compile_macosx.sh <architecture> <buildType> [<gitrepo> <gitref>] [<certname> <teamname> <applekeyid> <applekeypath> <applekeyissuer>]"
echo ""
echo "architecture: the target architecture to build for. Architectures are either amd64 or arm64."
echo "buildType: either Release or Debug"
@@ -10,7 +10,8 @@ if [ $# -lt 2 ] || [ $# -eq 3 ]
echo "gitref: the git commit id to pull"
echo "certname: the apple signing certificate name. Something like \"Developer ID Application: xxx (yyy)\""
echo "teamname: the apple team name. 10-digit id yyy from the cert name."
echo "applekeyid: your apple api key id"
echo "applekeyid: id of your apple api key"
echo "applekeypath: path to your apple api key"
echo "applekeyissuer: uuid of your apple api key issuer"
exit 1
fi
@@ -44,6 +45,10 @@ else
cd jcef
fi
#CMake patching
python3 ../scripts/patch_cmake.py cmake/DownloadCEF.cmake
python3 ../scripts/patch_cmake.py CMakeLists.txt
# Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed.
@@ -54,15 +59,16 @@ cd jcef_build
# MacOS: Generate amd64/arm64 Makefiles.
if [ ${TARGETARCH} == 'amd64' ]; then
cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
else
cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
fi
# Build native part using ninja.
ninja -j4
#Generate distribution
cd ../tools
sed -i "" 's/--ignore-source-errors//g' make_docs.sh
chmod +x make_distrib.sh
./make_distrib.sh macosx64
cd ..
@@ -72,7 +78,12 @@ cd binary_distrib/macosx64
if [ $# -gt 4 ]
then
chmod +x $WORK_DIR/macosx_codesign.sh
bash $WORK_DIR/macosx_codesign.sh $(pwd) "$5" $6 $7 $8
bash $WORK_DIR/macosx_codesign.sh $(pwd) "$5" $6 $7 $8 $9
retVal=$?
if [ $retVal -ne 0 ]; then
echo "Binaries are not correctly signed"
exit 1
fi
fi
#Pack binary_distrib

View File

@@ -1,13 +1,14 @@
#!/bin/bash
if [ $# -lt 5 ]
if [ $# -lt 6 ]
then
echo "Usage: ./macosx_codesign.sh <path> <certname> <teamname> <applekeyid> <applekeyissuer>"
echo "Usage: ./macosx_codesign.sh <path> <certname> <teamname> <applekeyid> <applekeypath> <applekeyissuer>"
echo ""
echo "path: the absolute(!) target path"
echo "certname: the apple signing certificate name. Something like \"Developer ID Application: xxx (yyy)\""
echo "teamname: the apple team name. 10-digit id yyy from the cert name."
echo "applekeyid: your apple api key id"
echo "applekeyid: id of your apple api key"
echo "applekeypath: path to your apple api key"
echo "applekeyissuer: uuid of your apple api key issuer"
exit 1
fi
@@ -28,23 +29,24 @@ chmod +x macosx_codesign_zip.sh
#Sign helpers
echo "Signing helpers..."
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app" "$2" $3 org.jcef.jcef.helper $4 $5
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app" "$2" $3 org.jcef.jcef.helper $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (GPU).app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (GPU).app" "$2" $3 org.jcef.jcef.helper.gpu $4 $5
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (GPU).app" "$2" $3 org.jcef.jcef.helper.gpu $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Plugin).app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Plugin).app" "$2" $3 org.jcef.jcef.helper.plugin $4 $5
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Plugin).app" "$2" $3 org.jcef.jcef.helper.plugin $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Renderer).app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Renderer).app" "$2" $3 org.jcef.jcef.helper.renderer $4 $5
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Renderer).app" "$2" $3 org.jcef.jcef.helper.renderer $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Alerts).app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (Alerts).app" "$2" $3 org.jcef.jcef.helper.alerts $4 $5 $6
#Sign libraries and framework
echo "Signing libraries and framework..."
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libEGL.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libGLESv2.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libswiftshader_libEGL.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libswiftshader_libGLESv2.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libvk_swiftshader.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME" "$2" $3 org.cef.framework $4 $5
touch "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Contents/CodeResources" # Small trick to not let the validate action fail
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME" "$2" $3 org.cef.framework $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/Contents/Java/libjcef.dylib"
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/gluegen-rt-natives-macosx-universal.jar" "natives/macosx-universal/libgluegen_rt.dylib" "$2"
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/jogl-all-natives-macosx-universal.jar" "natives/macosx-universal/libnativewindow_awt.dylib" "$2"
@@ -52,7 +54,16 @@ bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/jogl-all-natives-m
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/jogl-all-natives-macosx-universal.jar" "natives/macosx-universal/libjogl_mobile.dylib" "$2"
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/jogl-all-natives-macosx-universal.jar" "natives/macosx-universal/libnewt_head.dylib" "$2"
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/jogl-all-natives-macosx-universal.jar" "natives/macosx-universal/libjogl_desktop.dylib" "$2"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/Contents/MacOS/JavaAppLauncher"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME" "$2" $3 org.jcef.jcef $4 $5
bash macosx_notarize.sh "$APP_DIR/$APP_NAME" "$2" $3 org.jcef.jcef $4 $5 $6
echo "Checking notarization validity"
spctl -vvv --assess --type exec "$APP_DIR/$APP_NAME"
retVal=$?
if [ $retVal -ne 0 ]; then
echo "Binaries are not correctly signed"
exit 1
fi
echo "Done signing binaries"

View File

@@ -3,15 +3,16 @@
#Contents partly stolen from https://scriptingosx.com/2019/09/notarize-a-command-line-tool/
#Will need updating for XCode 13+
if [ $# -lt 6 ]
if [ $# -lt 7 ]
then
echo "Usage: ./macosx_notarize.sh <path> <certname> <teamname> <bundleid> <applekeyid> <applekeyissuer>"
echo "Usage: ./macosx_notarize.sh <path> <certname> <teamname> <bundleid> <applekeyid> <applekeypath> <applekeyissuer>"
echo ""
echo "path: the absolute(!) target path"
echo "certname: the apple signing certificate name. Something like \"Developer ID Application: xxx (yyy)\""
echo "teamname: the apple team name. 10-digit id yyy from the cert name."
echo "bundleid: the bundle id of the artifact"
echo "applekeyid: your apple api key id"
echo "applekeyid: id of your apple api key"
echo "applekeypath: path to your apple api key"
echo "applekeyissuer: uuid of your apple api key issuer"
exit 1
fi
@@ -27,50 +28,27 @@ cd $APP_DIR
echo "Creating zip"
zip -r "$APP_NAME.zip" "$APP_NAME"
echo "Uploading $ZIP_PATH for notarization"
requestUUID=$(xcrun altool --notarize-app \
--type macos \
--primary-bundle-id "$4" \
--apiKey "$5" \
--apiIssuer "$6" \
--file "$1.zip" 2>&1 \
| awk '/RequestUUID/ { print $NF; }')
# --asc-provider "$3" \
echo "Uploading $ZIP_PATH for notarization and waiting for result"
xcrun notarytool submit "$1.zip" \
--key $6 \
--key-id $5 \
--issuer $7 \
--wait 2>&1 | tee notary_output.txt
rm "$APP_NAME.zip"
requestUUID=$(cat notary_output.txt | awk '/id:/ { print $NF; exit; }')
rm notary_output.txt
echo "Notarization RequestUUID: $requestUUID"
# clean up zip
rm -f "$APP_NAME.zip"
if [[ $requestUUID == "" ]]; then
echo "Could not upload for notarization"
exit 1
fi
# wait for status to be not "in progress" any more
request_status="in progress"
while [[ "$request_status" == "in progress" ]]; do
echo -n "waiting... "
sleep 60
request_status=$(xcrun altool --notarization-info "$requestUUID" \
--apiKey "$5" \
--apiIssuer "$6" 2>&1 \
| awk -F ': ' '/Status:/ { print $2; }' )
echo "$request_status"
done
# print status information
xcrun altool --notarization-info "$requestUUID" \
--apiKey "$5" \
--apiIssuer "$6"
echo
if [[ $request_status != "success" ]]; then
echo "Could not notarize!"
exit 1
fi
echo "Notarization log:"
xcrun notarytool log $requestUUID \
--key $6 \
--key-id $5 \
--issuer $7 \
notarization.log
cat notarization.log
rm -f notarization.log
echo ""
# staple
xcrun stapler staple "$1"
xcrun stapler staple -v "$1"
echo "##########################################################"

View File

@@ -1,44 +0,0 @@
# Determine the platform.
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
if("${PROJECT_ARCH}" STREQUAL "arm64")
set(CEF_PLATFORM "macosarm64")
else()
set(CEF_PLATFORM "macosx64")
endif()
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
if("${PROJECT_ARCH}" STREQUAL "amd64")
set(CEF_PLATFORM "linux64")
elseif("${PROJECT_ARCH}" STREQUAL "arm64")
set(CEF_PLATFORM "linuxarm64")
elseif("${PROJECT_ARCH}" STREQUAL "arm/v6")
set(CEF_PLATFORM "linuxarm")
else()
set(CEF_PLATFORM "linux32")
endif()
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
#Stolen from Jetbrains jcef repository for the arm64 windows build
if(MSVC)
include(CheckSymbolExists)
# MSVC predefines _M_ARM64 for compilations that target ARM64
# and _M_AMD64 for compilations that target x86_64.
check_symbol_exists("_M_ARM64" "" CEF_PLATFORM_WINARM64)
check_symbol_exists("_M_AMD64" "" CEF_PLATFORM_WIN64)
# We also should set PROJECT_ARCH explicitly because FindCEF.cmake deduces it incorrectly for
# cross-compilation cases.
if(CEF_PLATFORM_WINARM64)
set(CEF_PLATFORM "windowsarm64")
set(PROJECT_ARCH "arm64")
elseif(CEF_PLATFORM_WIN64)
set(CEF_PLATFORM "windows64")
set(PROJECT_ARCH "x86_64")
else()
set(CEF_PLATFORM "windows32")
set(PROJECT_ARCH "x86")
endif()
else()
message(FATAL_ERROR "Building JCEF for Windows using non-MSVC compiler is not supported.")
endif()
endif()

View File

@@ -1,35 +1,23 @@
#Small script to patch CMakeLists.txt files with custom build options
#Will replace file contents between two markers ("Determine the platform"
#and "Add this project's cmake")
#Usage: python patch_cmake.py <input> <patch>
#Small script to patch our cmake download locations
#Usage: python patch_cmake.py <file>
import sys
input = sys.argv[1]
patch = sys.argv[2]
print("Patching "+input+" to accept further build architectures...")
print("Patching "+input+"...")
f = open(input, "r")
p = open(patch, "r")
result = ""
inpatch = False
for x in f:
if x.startswith("# Determine the platform"):
inpatch = True
for y in p:
result += y
elif x.startswith("# Add this project's cmake"):
inpatch = False
if inpatch == False:
#Patch minimum cmake version to not break our builds on linux
if x.startswith("cmake_minimum_required"):
result += "cmake_minimum_required(VERSION 3.13)\n"
else:
result += x
result += x.replace("https://cache-redirector.jetbrains.com/intellij-jbr/", "https://cef-builds.spotifycdn.com/") \
.replace("_minimal", "") \
.replace(".zip", ".tar.bz2") \
.replace(".checksum", ".sha1") \
.replace("SHA256", "SHA1") \
.replace("x86_64", "amd64")
f.close()
p.close()
f = open(input, "w")
f.write(result)

View File

@@ -9,6 +9,9 @@ if [ ${TARGETARCH} == 'arm/v6' ]; then
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel
fi
export PATH=$PATH:/usr/lib/jvm/openjdk-17/bin
export JAVA_HOME=/usr/lib/jvm/openjdk-17
# Print some debug info
echo "-------------------------------------"
echo "JAVA_HOME: $JAVA_HOME"
@@ -26,10 +29,11 @@ if [ ! -f "/jcef/README.md" ]; then
else
echo "Found existing files to build"
cd /jcef
fi
fi
#CMakeLists patching
python3 /builder/patch_cmake.py CMakeLists.txt /builder/CMakeLists.txt.patch
#CMake patching
python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
python3 /builder/patch_cmake.py CMakeLists.txt
# Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling

View File

@@ -25,6 +25,10 @@ else
cd /jcef
fi
#CMake patching
python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
python3 /builder/patch_cmake.py CMakeLists.txt
# Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed.

View File

@@ -12,16 +12,16 @@ if exist "jcef\README.md" (echo "Found existing files to build" && cd jcef) ^
else (echo "Did not find files to build - cloning..." && GOTO :CLONE)
:BUILD
:: CMakeLists patching
python C:/patch_cmake.py CMakeLists.txt C:/CMakeLists.txt.patch
:: CMakeLists patching
python C:/patch_cmake.py cmake/DownloadCEF.cmake
:: Prepare build dir
mkdir jcef_build && cd jcef_build
:: Load vcvars for 32 or 64-bit builds
if "%TARGETARCH%"=="386" (call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat")
if "%TARGETARCH%"=="amd64" (call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat")
if "%TARGETARCH%"=="arm64" (call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsamd64_arm64.bat")
if "%TARGETARCH%"=="386" (call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars32.bat")
if "%TARGETARCH%"=="amd64" (call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat")
if "%TARGETARCH%"=="arm64" (call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsamd64_arm64.bat")
:: Edit PATH variable on 386 to use 32 bit jdk (cmake findjni does not actually care about JAVA_HOME)
if "%TARGETARCH%"=="386" (set "PATH=C:/Program Files (x86)/Java/jdk1.8.0_211;%PATH%")