name: Release Cromite CI permissions: contents: write on: workflow_dispatch: inputs: sha: description: 'uazo/cromite SHA' required: true default: '' type: description: 'runner? [dev/ci]' required: true default: 'ci' draft: description: 'draft? [true/false]' required: true default: 'false' comment: description: 'comment' required: true env: CROMITE_SHA: ${{ github.event.inputs.sha }} REMOVEDOCKERSUPPORT: true USELOCALIMAGE: true COMMENT: ${{ github.event.inputs.comment }} jobs: release: runs-on: ${{ github.event.inputs.type }} env: IS_DRAFT: ${{ github.event.inputs.draft }} OUTPUTFILE_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/arm/ OUTPUTFILE_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64/ OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/ OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/ OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/ OUTPUTFILE_WV_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64_webview/ steps: - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Prepare container run: | wget https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip unzip pup_v0.4.0_linux_amd64.zip && rm pup_v0.4.0_linux_amd64.zip BRANCH=$(curl https://github.com/uazo/cromite/branch_commits/$CROMITE_SHA | ./pup -p li.branch:last-child a text{} | xargs) echo "BRANCH=$BRANCH" >> $GITHUB_ENV - name: Checkout 'uazo/cromite' uses: actions/checkout@v2 with: repository: 'uazo/cromite' path: 'cromite' fetch-depth: 1 - name: Create release shell: bash run: | VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE) cd cromite/tools GH=gh_2.21.1_linux_amd64/bin/gh wget https://github.com/cli/cli/releases/download/v2.21.1/gh_2.21.1_linux_amd64.tar.gz tar xfz gh_2.21.1_linux_amd64.tar.gz echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token echo $COMMENT >note $GH release create $VERSION-$CROMITE_SHA --notes-file note -d # android arm echo "::group::-------- android arm" sudo cp ${{ env.OUTPUTFILE_ARM }}/apks/ChromePublic.apk arm_ChromePublic.apk sudo chown runner arm_ChromePublic.apk echo Uploading arm_ChromePublic $GH release upload $VERSION-$CROMITE_SHA arm_ChromePublic.apk echo "::endgroup::" # android arm64 echo "::group::-------- android arm64" sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk arm64_ChromePublic.apk sudo chown runner arm64_ChromePublic.apk echo Uploading arm64_ChromePublic $GH release upload $VERSION-$CROMITE_SHA arm64_ChromePublic.apk echo "::endgroup::" # android x64 echo "::group::-------- android x64" sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk x64_ChromePublic.apk sudo chown runner x64_ChromePublic.apk echo Uploading x64_ChromePublic $GH release upload $VERSION-$CROMITE_SHA x64_ChromePublic.apk echo "::endgroup::" echo "::group::-------- chrome.size" test $VERSION-$CROMITE_SHA $OUTPUTFILE_ARM64/chrome.size && \ $GH release upload $VERSION-$CROMITE_SHA $OUTPUTFILE_ARM64/chrome.size echo "::endgroup::" echo "::group::-------- ChromePublic.apk.mapping" sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk.mapping arm64_ChromePublic.apk.mapping $GH release upload $VERSION-$CROMITE_SHA arm64_ChromePublic.apk.mapping sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk.mapping x64_ChromePublic.apk.mapping $GH release upload $VERSION-$CROMITE_SHA x64_ChromePublic.apk.mapping echo "::endgroup::" echo "::group::-------- Uploading arm64_ninja_log_trace.html" test $OUTPUTFILE_ARM64/ninja_log_trace.html && \ cp $OUTPUTFILE_ARM64/ninja_log_trace.html arm64_ninja_log_trace.html && \ $GH release upload $VERSION-$CROMITE_SHA arm64_ninja_log_trace.html echo "::endgroup::" # windows x64 echo "::group::-------- windows x64" mkdir chrome-win/ cp $OUTPUTFILE_WIN/*.manifest chrome-win/ cp $OUTPUTFILE_WIN/chrome.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_100_percent.pak chrome-win/ cp $OUTPUTFILE_WIN/chrome_200_percent.pak chrome-win/ cp $OUTPUTFILE_WIN/chrome_elf.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/ cp "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/ cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/ cp "$OUTPUTFILE_WIN/First Run" chrome-win/ cp $OUTPUTFILE_WIN/icudtl.dat chrome-win/ cp $OUTPUTFILE_WIN/libEGL.dll chrome-win/ cp $OUTPUTFILE_WIN/libGLESv2.dll chrome-win/ cp $OUTPUTFILE_WIN/Logo.png chrome-win/ cp $OUTPUTFILE_WIN/notification_helper.exe chrome-win/ cp $OUTPUTFILE_WIN/resources.pak chrome-win/ cp $OUTPUTFILE_WIN/SmallLogo.png chrome-win/ cp $OUTPUTFILE_WIN/snapshot_blob.bin chrome-win/ cp $OUTPUTFILE_WIN/VkICD_mock_icd.dll chrome-win/ cp $OUTPUTFILE_WIN/VkLayer_khronos_validation.dll chrome-win/ cp $OUTPUTFILE_WIN/vk_swiftshader.dll chrome-win/ cp $OUTPUTFILE_WIN/vulkan-1.dll chrome-win/ cp -r $OUTPUTFILE_WIN/locales chrome-win/locales #test chrome-win.zip && rm chrome-win.zip zip -r chrome-win.zip chrome-win/ echo Uploading chrome-win.zip $GH release upload $VERSION-$CROMITE_SHA chrome-win.zip echo "::endgroup::" TIMESTAMP=$(date +%s -r chrome-win.zip) echo >updateurl.txt "browser=chromium;os=windows;architecture=64-bit;timestamp=$TIMESTAMP;editor=uazo;channel=stable;repository=https://github.com/uazo/cromite/releases;download=https://github.com/uazo/cromite/releases/latest/download/chrome-win.zip;version=$(cat $OUTPUTFILE_WIN/RELEASE);revision=1;commit=$CROMITE_SHA" $GH release upload $VERSION-$CROMITE_SHA updateurl.txt ## linux echo "::group::-------- linux x64" mkdir chrome-lin/ cp $OUTPUTFILE_LIN/chrome chrome-lin/ cp $OUTPUTFILE_LIN/chrome_100_percent.pak chrome-lin/ cp $OUTPUTFILE_LIN/chrome_200_percent.pak chrome-lin/ cp $OUTPUTFILE_LIN/chrome_crashpad_handler chrome-lin/ cp $OUTPUTFILE_LIN/chrome-wrapper chrome-lin/ cp $OUTPUTFILE_LIN/icudtl.dat chrome-lin/ cp $OUTPUTFILE_LIN/libEGL.so chrome-lin/ cp $OUTPUTFILE_LIN/libGLESv2.so chrome-lin/ cp $OUTPUTFILE_LIN/libvulkan.so.1 chrome-lin/ cp $OUTPUTFILE_LIN/libqt5_shim.so chrome-lin/ cp $OUTPUTFILE_LIN/libqt6_shim.so chrome-lin/ cp $OUTPUTFILE_LIN/libvk_swiftshader.so chrome-lin/ cp -r $OUTPUTFILE_LIN/locales/ chrome-lin/locales cp $OUTPUTFILE_LIN/product_logo_48.png chrome-lin/ cp $OUTPUTFILE_LIN/resources.pak chrome-lin/ cp $OUTPUTFILE_LIN/snapshot_blob.bin chrome-lin/ cp $OUTPUTFILE_LIN/xdg-mime chrome-lin/ cp $OUTPUTFILE_LIN/xdg-settings chrome-lin/ cp $OUTPUTFILE_LIN/chrome_sandbox chrome-lin/ tar -czvf chrome-lin64.tar.gz chrome-lin/ echo Uploading chrome-lin64.tar.gz $GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz echo "::endgroup::" # android arm64 symbols echo "::group::-------- arm64 symbols" zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \ ${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \ ${{ env.OUTPUTFILE_ARM64 }}/libchrome.so $GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip echo "::endgroup::" # android arm64 echo "::group::-------- android systemwebview arm64" sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebView.apk arm64_SystemWebView.apk sudo chown runner arm64_SystemWebView.apk sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebViewShell.apk arm64_SystemWebViewShell.apk sudo chown runner arm64_SystemWebViewShell.apk echo Uploading arm64_SystemWebView $GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebView.apk $GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebViewShell.apk echo "::endgroup::" $GH release edit $VERSION-$CROMITE_SHA -t $VERSION-$CROMITE_SHA if [ $IS_DRAFT == "false" ]; then $GH release edit $VERSION-$CROMITE_SHA --draft=false fi