Skip to content

Commit de08d7f

Browse files
committed
init project
Signed-off-by: Kevin Cui <[email protected]>
1 parent e93ca5b commit de08d7f

File tree

6 files changed

+146
-0
lines changed

6 files changed

+146
-0
lines changed

.editorconfig

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
8+
[*.{json,yml,yaml}]
9+
indent_style = space
10+
indent_size = 2

.github/workflows/release.yml

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: macos-latest
14+
steps:
15+
- name: Configure R2 Credentials
16+
run: |
17+
aws configure set aws_access_key_id ${{ secrets.R2_OOMOL_STATIC_S3_AK }}
18+
aws configure set aws_secret_access_key ${{ secrets.R2_OOMOL_STATIC_S3_SK }}
19+
aws configure set region auto
20+
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
with:
24+
fetch-depth: 1
25+
26+
- name: Set up Goenv
27+
run: |
28+
brew install goenv
29+
30+
- name: Exec
31+
run: |
32+
./main.sh
33+
env:
34+
CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
35+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
37+
- name: Hash
38+
run: sha256sums ./out/* > sha256.txt
39+
40+
- name: Get Tag Name
41+
shell: bash
42+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
43+
44+
- name: Upload To R2
45+
shell: bash
46+
run: |
47+
aws s3 cp \
48+
--endpoint-url ${{ secrets.R2_OOMOL_STATIC_S3_ENDPOINT }} \
49+
./out \
50+
s3://oomol-static/ovm-resources/libexec/$RELEASE_VERSION \
51+
--recursive --exclude "*" --include "*.tar.gz"
52+
53+
- name: Release
54+
uses: softprops/action-gh-release@v2
55+
with:
56+
files: |
57+
./*.tar.gz
58+
./out/*
59+
./sha256.txt
60+
body_path: ./sha256.txt
61+
draft: false
62+
prerelease: false
63+
fail_on_unmatched_files: true
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.idea
2+
.vscode
3+
out
4+
Thumbs.db
5+
[Dd]esktop.ini
6+
$RECYCLE.BIN/
7+
.DS_Store
8+
9+
gvisor-tap-vsock
10+
krunkit
11+
*.tar.gz

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# ovm-libexec
2+
3+
OVM needs some third-party binary files, but some binary are either unsigned or universal. This project exists to address these issues.

krunkit.entitlements

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>com.apple.security.hypervisor</key>
6+
<true/>
7+
<key>com.apple.security.cs.disable-library-validationr</key>
8+
<true/>
9+
</dict>
10+
</plist>

main.sh

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#/bin/sh
2+
3+
set -e
4+
5+
export WORK=`pwd`
6+
7+
rm -rf ./out
8+
mkdir -p ./out
9+
export GOARCH=arm64
10+
export GOOS=darwin
11+
12+
# Gvp
13+
echo "Building gvp..."
14+
rm -rf gvisor-tap-vsock
15+
git clone https://github.com/containers/gvisor-tap-vsock.git
16+
cd gvisor-tap-vsock
17+
git checkout v0.7.5
18+
eval "$(goenv init -)"
19+
goenv install 1.22.0 -s
20+
goenv shell 1.22.0
21+
make gvproxy
22+
mv ./bin/gvproxy $WORK/out/gvproxy
23+
24+
# krun
25+
echo "Dwonloading krun..."
26+
cd $WORK
27+
rm -rf ./krunkit
28+
mkdir -p krunkit
29+
cd krunkit
30+
gh release download v0.1.3 -R containers/krunkit --pattern "krunkit-*" --clobber
31+
tar -zxvf krunkit-*.tgz -C ./
32+
mv bin/krunkit $WORK/out/krunkit
33+
mv lib/* $WORK/out/
34+
35+
cd $WORK
36+
37+
# codesign
38+
echo "Signing gvproxy..."
39+
codesign --force --sign $CODESIGN_IDENTITY --timestamp $WORK/out/gvproxy
40+
41+
echo "Signing krunkit..."
42+
codesign --force --sign $CODESIGN_IDENTITY --timestamp --entitlements krunkit.entitlements $WORK/out/krunkit
43+
44+
find $WORK/out -name "*.dylib" -type f -exec sh -c "echo 'Signing {}...'; codesign --force --sign $CODESIGN_IDENTITY --timestamp {}" ';'
45+
46+
# pack
47+
tar -czvf ./libexec-$GOOS-$GOARCH.tar.gz -C ./out/ .

0 commit comments

Comments
 (0)