Release Cromite CI #95
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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' | |
env: | |
CROMITE_SHA: ${{ github.event.inputs.sha }} | |
REMOVEDOCKERSUPPORT: true | |
USELOCALIMAGE: true | |
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/ | |
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 | |
wget https://github.com/cli/cli/releases/download/v2.18.1/gh_2.18.1_linux_amd64.tar.gz | |
tar xfz gh_2.18.1_linux_amd64.tar.gz | |
- 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 "\`\`\`" >note | |
# echo "this is not the official release of bromite but a test version." >>note | |
# echo "you can try it at your own risk." >>note | |
echo "\`\`\`" >>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/10.0.22621.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/headless_lib_data.pak 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::" | |
## 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::" | |
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::" | |
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 | |
$GH release edit $VERSION-$CROMITE_SHA -t $VERSION-$CROMITE_SHA | |
if [ $IS_DRAFT == "false" ]; then | |
$GH release edit $VERSION-$CROMITE_SHA --draft=false | |
fi | |
VERSION=$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE) | |
docker push uazo/cromite:$VERSION-$CROMITE_SHA | |
docker push uazo/cromite-build:$VERSION-$CROMITE_SHA | |