1010 - " meme_generator_cli/**"
1111 - " meme_generator_core/**"
1212 - " meme_generator_memes/**"
13+ - " meme_generator_node/**"
1314 - " meme_generator_py/**"
1415 - " meme_generator_server/**"
1516 - " meme_generator_utils/**"
1617 - " meme_options_derive/**"
1718 tags :
1819 - " v*"
19- pull_request_target :
20+ pull_request :
2021 paths :
2122 - " Cargo.toml"
2223 - " meme_generator/**"
2324 - " meme_generator_cli/**"
2425 - " meme_generator_core/**"
2526 - " meme_generator_memes/**"
27+ - " meme_generator_node/**"
2628 - " meme_generator_py/**"
2729 - " meme_generator_server/**"
2830 - " meme_generator_utils/**"
@@ -37,14 +39,62 @@ concurrency:
3739 cancel-in-progress : true
3840
3941jobs :
40- build :
42+ build_windows :
4143 runs-on : ${{ matrix.platform.runner }}
4244 strategy :
4345 matrix :
4446 platform :
4547 - runner : windows-latest
4648 target : x86_64-pc-windows-msvc
4749 label : windows-x86_64
50+
51+ steps :
52+ - uses : actions/checkout@v4
53+ - uses : dtolnay/rust-toolchain@1.88.0
54+ - uses : swatinem/rust-cache@v2
55+
56+ - name : Build target
57+ run : |
58+ rustup target add ${{ matrix.platform.target }}
59+ cargo build --release --target ${{ matrix.platform.target }} --bin meme --features server
60+
61+ - uses : actions/upload-artifact@v4
62+ with :
63+ name : " meme-generator-cli-${{ matrix.platform.label }}"
64+ path : |
65+ target/${{ matrix.platform.target }}/release/meme*
66+ !target/${{ matrix.platform.target }}/release/meme.pdb
67+
68+ - uses : pnpm/action-setup@v4
69+ with :
70+ version : 10
71+
72+ - name : Build nodejs addon
73+ run : pnpm install && pnpm build --release --target ${{ matrix.platform.target }}
74+ working-directory : meme_generator_node
75+
76+ - uses : actions/upload-artifact@v4
77+ with :
78+ name : " meme-generator-node-${{ matrix.platform.label }}"
79+ path : meme_generator_node/meme-generator*
80+
81+ - name : Build python wheels
82+ uses : PyO3/maturin-action@v1
83+ with :
84+ target : ${{ matrix.platform.target }}
85+ working-directory : meme_generator_py
86+ args : --release --out dist
87+
88+ - uses : actions/upload-artifact@v4
89+ with :
90+ name : meme-generator-py-${{ matrix.platform.label }}
91+ path : meme_generator_py/dist
92+
93+ build_macos :
94+ runs-on : ${{ matrix.platform.runner }}
95+ strategy :
96+ matrix :
97+ platform :
4898 - runner : macos-latest
4999 target : x86_64-apple-darwin
50100 label : macos-x86_64
@@ -55,34 +105,43 @@ jobs:
55105 steps :
56106 - uses : actions/checkout@v4
57107 - uses : dtolnay/rust-toolchain@1.88.0
58-
59108 - uses : swatinem/rust-cache@v2
60109
61- - name : Rustup add target
62- run : rustup target add ${{ matrix.platform.target }}
63-
64110 - name : Build target
65- run : cargo build --release --target ${{ matrix.platform.target }} --bin meme --features server
111+ run : |
112+ rustup target add ${{ matrix.platform.target }}
113+ cargo build --release --target ${{ matrix.platform.target }} --bin meme --features server
66114
67115 - uses : actions/upload-artifact@v4
68116 with :
69117 name : " meme-generator-cli-${{ matrix.platform.label }}"
70118 path : |
71119 target/${{ matrix.platform.target }}/release/meme*
72120 !target/${{ matrix.platform.target }}/release/meme.d
73- !target/${{ matrix.platform.target }}/release/meme.pdb
74121
75- - name : Build wheels
122+ - uses : pnpm/action-setup@v4
123+ with :
124+ version : 10
125+
126+ - name : Build nodejs addon
127+ run : pnpm install && pnpm build --release --target ${{ matrix.platform.target }}
128+ working-directory : meme_generator_node
129+
130+ - uses : actions/upload-artifact@v4
131+ with :
132+ name : " meme-generator-node-${{ matrix.platform.label }}"
133+ path : meme_generator_node/meme-generator*
134+
135+ - name : Build python wheels
76136 uses : PyO3/maturin-action@v1
77137 with :
78138 target : ${{ matrix.platform.target }}
79139 working-directory : meme_generator_py
80140 args : --release --out dist
81141
82- - name : Upload wheels
83- uses : actions/upload-artifact@v4
142+ - uses : actions/upload-artifact@v4
84143 with :
85- name : meme-generator-wheels -${{ matrix.platform.label }}
144+ name : meme-generator-py -${{ matrix.platform.label }}
86145 path : meme_generator_py/dist
87146
88147 build_linux :
@@ -105,11 +164,10 @@ jobs:
105164 - uses : dtolnay/rust-toolchain@1.88.0
106165 - uses : swatinem/rust-cache@v2
107166
108- - name : Rustup add target
109- run : rustup target add ${{ matrix.platform.target }}
110-
111167 - name : Build target
112- run : cargo build --release --target ${{ matrix.platform.target }} --bin meme --features server,vendored,embed-freetype
168+ run : |
169+ rustup target add ${{ matrix.platform.target }}
170+ cargo build --release --target ${{ matrix.platform.target }} --bin meme --features server,vendored,embed-freetype
113171
114172 - uses : actions/upload-artifact@v4
115173 with :
@@ -118,7 +176,24 @@ jobs:
118176 target/${{ matrix.platform.target }}/release/meme*
119177 !target/${{ matrix.platform.target }}/release/meme.d
120178
121- - name : Build wheels
179+ - uses : pnpm/action-setup@v4
180+ with :
181+ version : 10
182+
183+ - uses : actions/setup-node@v4
184+ with :
185+ node-version : 20
186+
187+ - name : Build nodejs addon
188+ run : pnpm install && pnpm build --release --target ${{ matrix.platform.target }} --features vendored,embed-freetype
189+ working-directory : meme_generator_node
190+
191+ - uses : actions/upload-artifact@v4
192+ with :
193+ name : " meme-generator-node-${{ matrix.platform.label }}"
194+ path : meme_generator_node/meme-generator*
195+
196+ - name : Build python wheels
122197 run : |
123198 pip3 install pipx
124199 export PATH=$PATH:/github/home/.local/bin
@@ -127,10 +202,9 @@ jobs:
127202 maturin build --release --out dist --target ${{ matrix.platform.target }} --features vendored,embed-freetype
128203 working-directory : meme_generator_py
129204
130- - name : Upload wheels
131- uses : actions/upload-artifact@v4
205+ - uses : actions/upload-artifact@v4
132206 with :
133- name : meme-generator-wheels -${{ matrix.platform.label }}
207+ name : meme-generator-py -${{ matrix.platform.label }}
134208 path : meme_generator_py/dist
135209
136210 build_android :
@@ -161,53 +235,3 @@ jobs:
161235 path : |
162236 target/${{ matrix.platform.target }}/release/meme*
163237 !target/${{ matrix.platform.target }}/release/meme.d
164-
165- crates_io_publish :
166- runs-on : ubuntu-latest
167- if : startsWith(github.ref, 'refs/tags/')
168- needs : [build, build_linux, build_android]
169- steps :
170- - uses : actions/checkout@v4
171- - uses : dtolnay/rust-toolchain@1.88.0
172- - uses : swatinem/rust-cache@v2
173-
174- - name : Cargo login
175- run : cargo login ${{ secrets.CRATES_IO_API_TOKEN }}
176-
177- - name : Cargo Publish
178- run : |
179- cargo publish --package meme_generator_memes
180- cargo publish --package meme_generator
181-
182- pypi_publish :
183- runs-on : ubuntu-latest
184- if : startsWith(github.ref, 'refs/tags/')
185- needs : [build, build_linux, build_android]
186- steps :
187- - uses : actions/download-artifact@v4
188-
189- - name : Publish to PyPI
190- uses : PyO3/maturin-action@v1
191- env :
192- MATURIN_PYPI_TOKEN : ${{ secrets.PYPI_API_TOKEN }}
193- with :
194- command : upload
195- args : --non-interactive --skip-existing meme-generator-wheels-*/*
196-
197- release_draft :
198- runs-on : ubuntu-latest
199- if : startsWith(github.ref, 'refs/tags/')
200- needs : [build, build_linux, build_android]
201- permissions :
202- contents : write
203- steps :
204- - uses : actions/checkout@v4
205- - uses : dawidd6/action-download-artifact@v11
206- with :
207- skip_unpack : true
208- - uses : softprops/action-gh-release@v2
209- with :
210- name : ${{ github.ref }}
211- draft : true
212- files : |
213- meme-generator-cli-*
0 commit comments