Skip to content

Commit 63ed78d

Browse files
committed
init
0 parents  commit 63ed78d

File tree

11 files changed

+1381
-0
lines changed

11 files changed

+1381
-0
lines changed

.github/workflows/build.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
- name: Build
20+
run: cargo build --verbose
21+
- name: Run tests
22+
run: cargo test --verbose

.github/workflows/release.yml

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [created]
6+
7+
permissions:
8+
contents: write
9+
10+
env:
11+
PROJECT_NAME: project-sync
12+
13+
jobs:
14+
release-apple-silicon:
15+
runs-on: macos-14
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Install Rust
22+
run: |
23+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
24+
export PATH="$HOME/.cargo/bin:$PATH"
25+
rustup default stable
26+
27+
- name: Build Rust Code
28+
run: cargo build --release
29+
30+
- name: Get Release Version
31+
id: get_release_version
32+
run: |
33+
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
34+
35+
- name: Create Zip Archive
36+
run: |
37+
version=$(echo ${{ steps.get_release_version.outputs.version }})
38+
zip -r "$version-macos-aarch64.zip" target/release/$PROJECT_NAME
39+
# NOTE: use zip -j to avoid including paths
40+
41+
- name: Upload Release Artifact with gh
42+
env:
43+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44+
run: |
45+
version=${{ steps.get_release_version.outputs.version }}
46+
gh release upload "$version" "${version}-macos-aarch64.zip#$PROJECT_NAME-${version}-macos-aarch64.zip"
47+
48+
release-apple-x86:
49+
runs-on: macos-13
50+
51+
steps:
52+
- name: Checkout code
53+
uses: actions/checkout@v4
54+
55+
- name: Install Rust
56+
run: |
57+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
58+
export PATH="$HOME/.cargo/bin:$PATH"
59+
rustup default stable
60+
61+
- name: Build Rust Code
62+
run: cargo build --release
63+
64+
- name: Get Release Version
65+
id: get_release_version
66+
run: |
67+
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
68+
69+
- name: Create Zip Archive
70+
run: |
71+
version=$(echo ${{ steps.get_release_version.outputs.version }})
72+
zip -r "$version-macos-x86.zip" target/release/$PROJECT_NAME
73+
74+
- name: Upload Release Artifact with gh
75+
env:
76+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77+
run: |
78+
version=${{ steps.get_release_version.outputs.version }}
79+
gh release upload "$version" "${version}-macos-x86.zip#$PROJECT_NAME-${version}-macos-x86.zip"
80+
81+
# # works just fine but we do want static build
82+
# release-linux-x86:
83+
# runs-on: ubuntu-22.04
84+
#
85+
# steps:
86+
# - name: Checkout code
87+
# uses: actions/checkout@v4
88+
#
89+
# - name: Install Rust
90+
# run: |
91+
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
92+
# export PATH="$HOME/.cargo/bin:$PATH"
93+
# rustup default stable
94+
#
95+
# - name: Build Rust Code
96+
# run: cargo build --release
97+
#
98+
# - name: Get Release Version
99+
# id: get_release_version
100+
# run: echo "::set-output name=version::${GITHUB_REF#refs/tags/}"
101+
#
102+
# - name: Create Zip Archive
103+
# run: |
104+
# version=$(echo ${{ steps.get_release_version.outputs.version }})
105+
# zip -r "$version-linux-x86.zip" target/release/$PROJECT_NAME
106+
#
107+
# - name: Upload Release Artifact with gh
108+
# env:
109+
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
110+
# run: |
111+
# version=${{ steps.get_release_version.outputs.version }}
112+
# gh release upload "$version" "${version}-linux-x86.zip#$PROJECT_NAME-${version}-linux-x86.zip"
113+
114+
115+
release-linux-x86:
116+
runs-on: ubuntu-22.04
117+
118+
steps:
119+
- name: Checkout code
120+
uses: actions/checkout@v4
121+
122+
- name: Install Rust
123+
run: |
124+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
125+
export PATH="$HOME/.cargo/bin:$PATH"
126+
rustup default stable
127+
rustup target add x86_64-unknown-linux-musl
128+
129+
- name: Build Rust Code
130+
run: cargo build --release --target x86_64-unknown-linux-musl
131+
132+
- name: Get Release Version
133+
id: get_release_version
134+
run: |
135+
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
136+
137+
- name: Create Zip Archive
138+
run: |
139+
version=$(echo ${{ steps.get_release_version.outputs.version }})
140+
zip -r "$version-linux-x86.zip" target/x86_64-unknown-linux-musl/release/$PROJECT_NAME
141+
142+
- name: Upload Release Artifact with gh
143+
env:
144+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
145+
run: |
146+
version=${{ steps.get_release_version.outputs.version }}
147+
gh release upload "$version" "${version}-linux-x86.zip#$PROJECT_NAME-${version}-linux-x86.zip"
148+
149+
release-windows-x86:
150+
runs-on: ubuntu-22.04
151+
152+
steps:
153+
- name: Checkout code
154+
uses: actions/checkout@v4
155+
156+
- name: Install gcc-mingw-w64-x86-64
157+
run: sudo apt-get update && sudo apt-get install -y gcc-mingw-w64-x86-64
158+
159+
- name: Install Rust
160+
run: |
161+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
162+
export PATH="$HOME/.cargo/bin:$PATH"
163+
rustup default stable
164+
rustup target add x86_64-pc-windows-gnu
165+
166+
- name: Build Rust Code
167+
run: cargo build --release --target x86_64-pc-windows-gnu
168+
169+
- name: Get Release Version
170+
id: get_release_version
171+
run: |
172+
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
173+
174+
- name: Create Zip Archive
175+
run: |
176+
version=$(echo ${{ steps.get_release_version.outputs.version }})
177+
zip -r "$version-windows-x86.zip" target/x86_64-pc-windows-gnu/release/$PROJECT_NAME.exe
178+
179+
- name: Upload Release Artifact with gh
180+
env:
181+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
182+
run: |
183+
version=${{ steps.get_release_version.outputs.version }}
184+
gh release upload "$version" "${version}-windows-x86.zip#$PROJECT_NAME-${version}-windows-x86.zip"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

0 commit comments

Comments
 (0)