Compare commits

...

38 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
FriwiDev
d80b0b0138 Remove linux 386 due to dropped support in chromium 104 and upwards 2022-08-26 20:58:46 +02:00
FriwiDev
89c81ce91c Add additional information for code signing 2022-05-05 12:28:17 +02:00
24 changed files with 233 additions and 331 deletions

View File

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

View File

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

View File

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

View File

@@ -1,37 +0,0 @@
name: build-linux-i386
on:
workflow_dispatch:
inputs:
repo:
description: 'Git repository to clone'
required: true
default: 'https://bitbucket.org/chromiumembedded/java-cef.git'
ref:
description: 'Git commit id to checkout'
required: true
default: 'master'
jobs:
build-linux-i386:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Build
run: |
chmod +x compile_linux.sh
./compile_linux.sh 386 Release ${{ github.event.inputs.repo }} ${{ github.event.inputs.ref }}
-
name: Export artifacts
uses: actions/upload-artifact@v2
with:
name: linux-i386.tar.gz
path: out/binary_distrib.tar.gz

View File

@@ -14,14 +14,19 @@ on:
jobs: jobs:
build-macosx-amd64: build-macosx-amd64:
runs-on: macos-10.15 runs-on: macos-12
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v3
- -
name: Setup environment name: Setup environment
run: | run: |
chmod +x scripts/install_macos_dependencies.sh chmod +x scripts/install_macos_dependencies.sh
./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 - name: Install Apple certificate
env: env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }} BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -53,7 +58,7 @@ jobs:
name: Build name: Build
run: | run: |
chmod +x compile_macosx.sh 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 - name: Clean up keychain
if: ${{ always() }} if: ${{ always() }}
run: | run: |
@@ -61,7 +66,7 @@ jobs:
rm -rf "${HOME}/private_keys" rm -rf "${HOME}/private_keys"
- -
name: Export artifacts name: Export artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: macosx-amd64.tar.gz name: macosx-amd64.tar.gz
path: out/binary_distrib.tar.gz path: out/binary_distrib.tar.gz

View File

@@ -14,14 +14,19 @@ on:
jobs: jobs:
build-macosx-arm64: build-macosx-arm64:
runs-on: macos-10.15 runs-on: macos-12
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v3
- -
name: Setup environment name: Setup environment
run: | run: |
chmod +x scripts/install_macos_dependencies.sh chmod +x scripts/install_macos_dependencies.sh
./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 - name: Install Apple certificate
env: env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }} BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -53,7 +58,7 @@ jobs:
name: Build name: Build
run: | run: |
chmod +x compile_macosx.sh 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 - name: Clean up keychain
if: ${{ always() }} if: ${{ always() }}
run: | run: |
@@ -61,7 +66,7 @@ jobs:
rm -rf "${HOME}/private_keys" rm -rf "${HOME}/private_keys"
- -
name: Export artifacts name: Export artifacts
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: macosx-arm64.tar.gz name: macosx-arm64.tar.gz
path: out/binary_distrib.tar.gz path: out/binary_distrib.tar.gz

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -12,14 +12,14 @@
<table> <table>
<tr> <tr>
<td width="12%"></td> <td width="12%"></td>
<td width="22%"><a href="#"><img src="https://simpleicons.org/icons/linux.svg" alt="linux" width="32" height="32"></a><br/><b>amd64, arm64, i386 & arm</b></td> <td width="22%"><a href="#"><img src="https://simpleicons.org/icons/linux.svg" alt="linux" width="32" height="32"></a><br/><b>amd64, arm64 & arm</b></td>
<td width="22%"><a href="#"><img src="https://simpleicons.org/icons/windows.svg" alt="windows" width="32" height="32"></a><br/><b>amd64 & i386</b></td> <td width="22%"><a href="#"><img src="https://simpleicons.org/icons/windows.svg" alt="windows" width="32" height="32"></a><br/><b>amd64 & i386</b></td>
<td width="22%"><a href="#"><img src="https://simpleicons.org/icons/windows.svg" alt="windows" width="32" height="32"></a><br/><b>arm64</b></td> <td width="22%"><a href="#"><img src="https://simpleicons.org/icons/windows.svg" alt="windows" width="32" height="32"></a><br/><b>arm64</b></td>
<td width="22%"><a href="#"><img src="https://simpleicons.org/icons/apple.svg" alt="apple" width="32" height="32"></a><br/><b>amd64 & arm64</b></td> <td width="22%"><a href="#"><img src="https://simpleicons.org/icons/apple.svg" alt="apple" width="32" height="32"></a><br/><b>amd64 & arm64</b></td>
</tr> </tr>
<tr> <tr>
<td><b>Java</b></td> <td><b>Java</b></td>
<td>OpenJDK 11</td> <td>OpenJDK 17</td>
<td>Oracle JDK 8</td> <td>Oracle JDK 8</td>
<td>Microsoft JDK 11</td> <td>Microsoft JDK 11</td>
<td>Temurin JDK 8</td> <td>Temurin JDK 8</td>
@@ -27,16 +27,16 @@
<tr> <tr>
<td><b>Compiler</b></td> <td><b>Compiler</b></td>
<td>GCC 10</td> <td>GCC 10</td>
<td>VS 2019</td> <td>VS 2022</td>
<td>VS 2019</td> <td>VS 2022</td>
<td>Xcode 12</td> <td>Xcode 13</td>
</tr> </tr>
<tr> <tr>
<td><b>Build</b></td> <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 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>
<tr> <tr>
<td><b>Limitations</b></td> <td><b>Limitations</b></td>
@@ -61,11 +61,26 @@ You have multiple options to build your own project using this repository. They
To build another git repo, simply fork this repository. Then go to the "Actions" tab of your forked repository, To build another git repo, simply fork this repository. Then go to the "Actions" tab of your forked repository,
activate the workflows and manually run the `build-all` (or `build-<platform>`) workflow with your repository and commit id/branch specified. activate the workflows and manually run the `build-all` (or `build-<platform>`) workflow with your repository and commit id/branch specified.
This will trigger a build of your desired repository and platforms. This will trigger a build of your desired repository and platforms.
To produce a build for MacOS, you will need to specify your code signing information or remove the signing and notarization steps from the action workflows.
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 ### Building locally
To build locally, put your sources in the `jcef` directory of this repository, or leave it empty to clone a repository. To build locally, put your sources in the `jcef` directory of this repository, or leave it empty to clone a repository.
On Windows and Linux, make sure you installed docker (NOT the Snap version!). On Windows and Linux, make sure you installed docker (NOT the Snap version!). On MacOS, make sure you installed the build dependencies specified
On MacOS, make sure you installed the build dependencies specified
[here](https://bitbucket.org/chromiumembedded/java-cef/wiki/BranchesAndBuilding) and `ninja`. [here](https://bitbucket.org/chromiumembedded/java-cef/wiki/BranchesAndBuilding) and `ninja`.
Then execute `compile-<os>.<sh|bat> <arch> <buildType> [<gitrepo> <gitref>]`. Then execute `compile-<os>.<sh|bat> <arch> <buildType> [<gitrepo> <gitref>]`.

View File

@@ -4,7 +4,7 @@ if [ $# -lt 2 ] || [ $# -eq 3 ]
then then
echo "Usage: ./compile_linux.sh <architecture> <buildType> [<gitrepo> <gitref>]" echo "Usage: ./compile_linux.sh <architecture> <buildType> [<gitrepo> <gitref>]"
echo "" echo ""
echo "architecture: the target architecture to build for. Architectures are either arm64, arm/v6, 386 or amd64." echo "architecture: the target architecture to build for. Architectures are either arm64, arm/v6 or amd64."
echo "buildType: either Release or Debug" echo "buildType: either Release or Debug"
echo "gitrepo: git repository url to clone" echo "gitrepo: git repository url to clone"
echo "gitref: the git commit id to pull" echo "gitref: the git commit id to pull"

View File

@@ -2,7 +2,7 @@
if [ $# -lt 2 ] || [ $# -eq 3 ] if [ $# -lt 2 ] || [ $# -eq 3 ]
then 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 ""
echo "architecture: the target architecture to build for. Architectures are either amd64 or arm64." echo "architecture: the target architecture to build for. Architectures are either amd64 or arm64."
echo "buildType: either Release or Debug" echo "buildType: either Release or Debug"
@@ -10,7 +10,8 @@ if [ $# -lt 2 ] || [ $# -eq 3 ]
echo "gitref: the git commit id to pull" echo "gitref: the git commit id to pull"
echo "certname: the apple signing certificate name. Something like \"Developer ID Application: xxx (yyy)\"" 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 "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" echo "applekeyissuer: uuid of your apple api key issuer"
exit 1 exit 1
fi fi
@@ -44,6 +45,10 @@ else
cd jcef cd jcef
fi 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. # Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling # The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed. # and should not be changed.
@@ -54,15 +59,16 @@ cd jcef_build
# MacOS: Generate amd64/arm64 Makefiles. # MacOS: Generate amd64/arm64 Makefiles.
if [ ${TARGETARCH} == 'amd64' ]; then 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 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 fi
# Build native part using ninja. # Build native part using ninja.
ninja -j4 ninja -j4
#Generate distribution #Generate distribution
cd ../tools cd ../tools
sed -i "" 's/--ignore-source-errors//g' make_docs.sh
chmod +x make_distrib.sh chmod +x make_distrib.sh
./make_distrib.sh macosx64 ./make_distrib.sh macosx64
cd .. cd ..
@@ -72,7 +78,12 @@ cd binary_distrib/macosx64
if [ $# -gt 4 ] if [ $# -gt 4 ]
then then
chmod +x $WORK_DIR/macosx_codesign.sh 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 fi
#Pack binary_distrib #Pack binary_distrib

View File

@@ -1,13 +1,14 @@
#!/bin/bash #!/bin/bash
if [ $# -lt 5 ] if [ $# -lt 6 ]
then then
echo "Usage: ./macosx_codesign.sh <path> <certname> <teamname> <applekeyid> <applekeyissuer>" echo "Usage: ./macosx_codesign.sh <path> <certname> <teamname> <applekeyid> <applekeypath> <applekeyissuer>"
echo "" echo ""
echo "path: the absolute(!) target path" echo "path: the absolute(!) target path"
echo "certname: the apple signing certificate name. Something like \"Developer ID Application: xxx (yyy)\"" 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 "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" echo "applekeyissuer: uuid of your apple api key issuer"
exit 1 exit 1
fi fi
@@ -28,23 +29,24 @@ chmod +x macosx_codesign_zip.sh
#Sign helpers #Sign helpers
echo "Signing helpers..." echo "Signing helpers..."
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app" 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" 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" 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" 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 #Sign libraries and framework
echo "Signing 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/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/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/Libraries/libvk_swiftshader.dylib"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME" 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" 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/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" 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/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/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" 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" 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" echo "Done signing binaries"

View File

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

@@ -76,7 +76,6 @@ mv LICENSE.txt ../LICENSE
echo " \"actions_url\": \"$3\", " echo " \"actions_url\": \"$3\", "
echo " \"actions_number\": \"$4\", " echo " \"actions_number\": \"$4\", "
echo " \"filename_linux_amd64\": \"linux-amd64.tar.gz\", " echo " \"filename_linux_amd64\": \"linux-amd64.tar.gz\", "
echo " \"filename_linux_i386\": \"linux-i386.tar.gz\", "
echo " \"filename_linux_arm64\": \"linux-arm64.tar.gz\", " echo " \"filename_linux_arm64\": \"linux-arm64.tar.gz\", "
echo " \"filename_linux_arm\": \"linux-arm.tar.gz\", " echo " \"filename_linux_arm\": \"linux-arm.tar.gz\", "
echo " \"filename_windows_amd64\": \"windows-amd64.tar.gz\", " echo " \"filename_windows_amd64\": \"windows-amd64.tar.gz\", "
@@ -88,7 +87,6 @@ mv LICENSE.txt ../LICENSE
echo " \"release_tag\": \"$real_release_tag\"," echo " \"release_tag\": \"$real_release_tag\","
echo " \"release_url\": \"https://github.com/$5/releases/tag/$release_tag\", " echo " \"release_url\": \"https://github.com/$5/releases/tag/$release_tag\", "
echo " \"download_url_linux_amd64\": \"https://github.com/$5/releases/download/$release_tag/linux-amd64.tar.gz\", " echo " \"download_url_linux_amd64\": \"https://github.com/$5/releases/download/$release_tag/linux-amd64.tar.gz\", "
echo " \"download_url_linux_i386\": \"https://github.com/$5/releases/download/$release_tag/linux-i386.tar.gz\", "
echo " \"download_url_linux_arm64\": \"https://github.com/$5/releases/download/$release_tag/linux-arm64.tar.gz\", " echo " \"download_url_linux_arm64\": \"https://github.com/$5/releases/download/$release_tag/linux-arm64.tar.gz\", "
echo " \"download_url_linux_arm\": \"https://github.com/$5/releases/download/$release_tag/linux-arm.tar.gz\", " echo " \"download_url_linux_arm\": \"https://github.com/$5/releases/download/$release_tag/linux-arm.tar.gz\", "
echo " \"download_url_windows_amd64\": \"https://github.com/$5/releases/download/$release_tag/windows-amd64.tar.gz\", " echo " \"download_url_windows_amd64\": \"https://github.com/$5/releases/download/$release_tag/windows-amd64.tar.gz\", "

View File

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

View File

@@ -9,6 +9,9 @@ if [ ${TARGETARCH} == 'arm/v6' ]; then
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel
fi fi
export PATH=$PATH:/usr/lib/jvm/openjdk-17/bin
export JAVA_HOME=/usr/lib/jvm/openjdk-17
# Print some debug info # Print some debug info
echo "-------------------------------------" echo "-------------------------------------"
echo "JAVA_HOME: $JAVA_HOME" echo "JAVA_HOME: $JAVA_HOME"
@@ -26,10 +29,11 @@ if [ ! -f "/jcef/README.md" ]; then
else else
echo "Found existing files to build" echo "Found existing files to build"
cd /jcef cd /jcef
fi fi
#CMakeLists patching #CMake patching
python3 /builder/patch_cmake.py CMakeLists.txt /builder/CMakeLists.txt.patch python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
python3 /builder/patch_cmake.py CMakeLists.txt
# Create and enter the `jcef_build` directory. # Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling # The `jcef_build` directory name is required by other JCEF tooling
@@ -59,7 +63,8 @@ chmod +x compile.sh
if [ ${TARGETARCH} == 'amd64' ] || [ ${TARGETARCH} == 'arm64' ]; then if [ ${TARGETARCH} == 'amd64' ] || [ ${TARGETARCH} == 'arm64' ]; then
./compile.sh linux64 ./compile.sh linux64
elif [ ${TARGETARCH} == '386' ]; then elif [ ${TARGETARCH} == '386' ]; then
./compile.sh linux32 echo "386 is no longer supported since chromium 104"
exit 1
else else
echo "Can not compile java classes under arm/v6 currently. So we copy from prebuild directory." echo "Can not compile java classes under arm/v6 currently. So we copy from prebuild directory."
mkdir -p /jcef/out/linux32 mkdir -p /jcef/out/linux32

View File

@@ -25,6 +25,10 @@ else
cd /jcef cd /jcef
fi 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. # Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling # The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed. # 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) else (echo "Did not find files to build - cloning..." && GOTO :CLONE)
:BUILD :BUILD
:: CMakeLists patching :: CMakeLists patching
python C:/patch_cmake.py CMakeLists.txt C:/CMakeLists.txt.patch python C:/patch_cmake.py cmake/DownloadCEF.cmake
:: Prepare build dir :: Prepare build dir
mkdir jcef_build && cd jcef_build mkdir jcef_build && cd jcef_build
:: Load vcvars for 32 or 64-bit builds :: 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%"=="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\2019\BuildTools\VC\Auxiliary\Build\vcvars64.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\2019\BuildTools\VC\Auxiliary\Build\vcvarsamd64_arm64.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) :: 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%") if "%TARGETARCH%"=="386" (set "PATH=C:/Program Files (x86)/Java/jdk1.8.0_211;%PATH%")