@@ -66,104 +66,69 @@ jobs:
6666 path : /tmp/release/
6767 - name : Name Artifacts
6868 run : |
69- mv /tmp/release/indexify-server-darwin-arm64/indexify-server /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-darwin-arm64
7069 mv /tmp/release/indexify-server-linux-amd64/indexify-server /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-linux-amd64
71- mv /tmp/release/indexify-server-deb- linux-amd64 /indexify-server_${{ needs.extract-version.outputs.version }}-1_amd64.deb /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-linux-amd64.deb
70+ mv /tmp/release/indexify-server-linux-aarch64 /indexify-server /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-linux-aarch64
7271
7372 - name : Create GitHub Release
74- id : create_release
7573 uses : softprops/action-gh-release@v2
7674 with :
7775 tag_name : ' v${{ needs.extract-version.outputs.version }}'
7876 prerelease : ${{ github.event.inputs.prerelease }}
7977 target_commitish : ${{ inputs.ref }}
80-
81- - name : Upload Linux Binary
82- uses : actions/upload-release-asset@v1
83- with :
84- upload_url : ${{ steps.create_release.outputs.upload_url }}
85- asset_path :
86- /tmp/release/indexify-server-${{
87- needs.extract-version.outputs.version }}-linux-amd64
88- asset_name :
89- indexify-server-${{ needs.extract-version.outputs.version
90- }}-linux-amd64
91- asset_content_type : application/octet-stream
92- env :
93- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
94- - name : Upload Linux Deb Package for amd64
95- uses : actions/upload-release-asset@v1
96- with :
97- upload_url : ${{ steps.create_release.outputs.upload_url }}
98- asset_path :
99- /tmp/release/indexify-server-${{
100- needs.extract-version.outputs.version }}-linux-amd64.deb
101- asset_name :
102- indexify-server-${{ needs.extract-version.outputs.version
103- }}-linux-amd64.deb
104- asset_content_type : application/octet-stream
105- env :
106- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
107- - name : Upload macOS Binary
108- uses : actions/upload-release-asset@v1
109- with :
110- upload_url : ${{ steps.create_release.outputs.upload_url }}
111- asset_path :
112- /tmp/release/indexify-server-${{
113- needs.extract-version.outputs.version }}-darwin-arm64
114- asset_name :
115- indexify-server-${{ needs.extract-version.outputs.version
116- }}-darwin-arm64
117- asset_content_type : application/octet-stream
118- env :
119- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
120- - name : install reprepro
121- run : sudo apt-get update && sudo apt-get install -y reprepro
122-
123- - name : Run reprepro
124- run : |
125- ls /tmp/release/
126- (cd .repo && reprepro includedeb buster /tmp/release/*.deb)
127- (cd .repo && reprepro includedeb focal /tmp/release/*.deb)
128- (cd .repo && reprepro includedeb jammy /tmp/release/*.deb)
129- # (cd .repo && reprepro includedeb noble /tmp/release/*.deb)
130- ls .repo/
131-
132- - uses : ryand56/r2-upload-action@latest
133- with :
134- r2-account-id : ${{ secrets.R2_ACCOUNT_ID }}
135- r2-access-key-id : ${{ secrets.R2_ACCESS_KEY_ID }}
136- r2-secret-access-key : ${{ secrets.R2_SECRET_ACCESS_KEY }}
137- r2-bucket : ${{ secrets.R2_BUCKET }}
138- source-dir : server/.repo/
139- destination-dir : ./repo
78+ files : |
79+ /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-linux-amd64
80+ /tmp/release/indexify-server-${{ needs.extract-version.outputs.version }}-linux-aarch64
14081
14182 build-and-push-docker-images :
14283 name : Build and Push Docker Images
14384 runs-on : namespace-profile-indexify-builder
14485 needs :
86+ - build-release-packages
14587 - extract-version
14688 - create-release
14789 steps :
14890 - uses : actions/checkout@v4
14991 with :
15092 ref : ${{ inputs.ref }}
15193
94+ - name : Download Artifacts
95+ uses : actions/download-artifact@v4
96+ with :
97+ path : /tmp/docker-binaries/
98+
99+ - name : Prepare binaries for Docker build
100+ run : |
101+ # Docker buildx uses amd64 and arm64 for TARGETARCH
102+ # Copy and rename binaries to match Docker's architecture naming
103+ # Note: We're already in ./server directory due to defaults.run.working-directory
104+ ls -la /tmp/docker-binaries/
105+ cp /tmp/docker-binaries/indexify-server-linux-amd64/indexify-server ./indexify-server-amd64
106+ cp /tmp/docker-binaries/indexify-server-linux-aarch64/indexify-server ./indexify-server-arm64
107+ ls -la ./indexify-server-*
108+ chmod +x ./indexify-server-amd64 ./indexify-server-arm64
109+
110+ - name : Set up Docker Buildx
111+ uses : docker/setup-buildx-action@v3
112+
152113 - name : Login to Docker Hub
153114 uses : docker/login-action@v3
154115 with :
155116 username : ${{ secrets.DOCKERHUB_USERNAME }}
156117 password : ${{ secrets.DOCKERHUB_TOKEN }}
157- - run : |
158- docker buildx build --platform=linux/amd64 --push . -t tensorlake/indexify-server:latest -f dockerfiles/Dockerfile.release_server;
159118
160- tag="";
119+ - name : Build and push multi-platform Docker images
120+ run : |
121+ # Build and push latest tag with multi-platform support
122+ docker buildx build --platform=linux/amd64,linux/arm64 --push . -t tensorlake/indexify-server:latest -f dockerfiles/Dockerfile.release_server
123+
124+ # Build and push version tags
125+ tag=""
161126 for i in $(echo ${{ needs.extract-version.outputs.version }} | tr '.' '\n')
162127 do
163128 if [[ $tag == "" ]]; then
164- tag="$i";
129+ tag="$i"
165130 else
166- tag="$tag.$i";
131+ tag="$tag.$i"
167132 fi
168- docker buildx build --platform=linux/amd64 --push . -t tensorlake/indexify-server:$tag -f dockerfiles/Dockerfile.release_server;
133+ docker buildx build --platform=linux/amd64,linux/arm64 --push . -t tensorlake/indexify-server:$tag -f dockerfiles/Dockerfile.release_server
169134 done
0 commit comments