9 contents: write # to fetch code (actions/checkout) and create release
12 IMAGE_NAME: signal-cli
13 IMAGE_REGISTRY: ghcr.io/asamk
14 REGISTRY_USER: ${{ github.actor }}
15 REGISTRY_PASSWORD: ${{ github.token }}
22 uses: AsamK/signal-cli/.github/workflows/ci.yml@master
23 # ${{ github.repository }} not accepted here
27 runs-on: ubuntu-latest
32 signal_cli_version: ${{ steps.cli_ver.outputs.version }}
33 release_id: ${{ steps.create_release.outputs.id }}
37 - name: Download signal-cli build from CI workflow
38 uses: actions/download-artifact@v3
40 - name: Get signal-cli version
43 ver="${GITHUB_REF_NAME#v}"
44 echo "version=${ver}" >> $GITHUB_OUTPUT
46 - name: Extract archive
49 ARCHIVE_DIR=$(ls signal-cli-archive-*/ -d | tail -n1)
50 tar -xzf ./"${ARCHIVE_DIR}"/*.tar.gz
51 mv ./"${ARCHIVE_DIR}"/*.tar.gz signal-cli-${{ steps.cli_ver.outputs.version }}.tar.gz
52 rm -rf signal-cli-archive-*/
54 # - name: Get signal-client jar version
57 # JAR_PREFIX=libsignal-client-
58 # jar_file=$(find ./signal-cli-*/lib/ -name "$JAR_PREFIX*.jar")
59 # jar_version=$(echo "$jar_file" | xargs basename | sed "s/$JAR_PREFIX//; s/.jar//")
61 # echo "signal_client_version=${jar_version}" >> $GITHUB_OUTPUT
63 # - name: Download signal-client builds
65 # RELEASES_URL: https://github.com/signalapp/libsignal/releases/download/
66 # FILE_NAMES: signal_jni.dll libsignal_jni.dylib
67 # SIGNAL_CLIENT_VER: ${{ steps.lib_ver.outputs.signal_client_version }}
69 # for file_name in $FILE_NAMES; do
70 # curl -sOL "${RELEASES_URL}/v${SIGNAL_CLIENT_VER}/${file_name}" # note: added v
74 - name: Compress native app
76 SIGNAL_CLI_VER: ${{ steps.cli_ver.outputs.version }}
78 chmod +x signal-cli-native/signal-cli
79 tar -czf signal-cli-${SIGNAL_CLI_VER}-Linux-native.tar.gz -C signal-cli-native signal-cli
80 rm -rf signal-cli-native/
82 # - name: Replace Windows lib
84 # SIGNAL_CLI_VER: ${{ steps.cli_ver.outputs.version }}
85 # SIGNAL_CLIENT_VER: ${{ steps.lib_ver.outputs.signal_client_version }}
87 # mv signal_jni.dll libsignal_jni.so
88 # zip -u ./signal-cli-*/lib/libsignal-client-${SIGNAL_CLIENT_VER}.jar ./libsignal_jni.so
89 # tar -czf signal-cli-${SIGNAL_CLI_VER}-Windows.tar.gz signal-cli-*/
91 # - name: Replace macOS lib
93 # SIGNAL_CLI_VER: ${{ steps.cli_ver.outputs.version }}
94 # SIGNAL_CLIENT_VER: ${{ steps.lib_ver.outputs.signal_client_version }}
96 # jar_file=./signal-cli-*/lib/libsignal-client-${SIGNAL_CLIENT_VER}.jar
97 # zip -d $jar_file libsignal_jni.so
98 # zip $jar_file libsignal_jni.dylib
99 # tar -czf signal-cli-${SIGNAL_CLI_VER}-macOS.tar.gz signal-cli-*/
101 - name: Create release
103 uses: actions/create-release@v1
105 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
107 tag_name: v${{ steps.cli_ver.outputs.version }} # note: added `v`
108 release_name: v${{ steps.cli_ver.outputs.version }} # note: added `v`
111 - name: Upload archive
112 uses: actions/upload-release-asset@v1
114 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
116 upload_url: ${{ steps.create_release.outputs.upload_url }}
117 asset_path: signal-cli-${{ steps.cli_ver.outputs.version }}.tar.gz
118 asset_name: signal-cli-${{ steps.cli_ver.outputs.version }}.tar.gz
119 asset_content_type: application/x-compressed-tar # .tar.gz
121 # - name: Upload Linux archive
122 # uses: actions/upload-release-asset@v1
124 # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
126 # upload_url: ${{ steps.create_release.outputs.upload_url }}
127 # asset_path: signal-cli-${{ steps.cli_ver.outputs.version }}-Linux.tar.gz
128 # asset_name: signal-cli-${{ steps.cli_ver.outputs.version }}-Linux.tar.gz
129 # asset_content_type: application/x-compressed-tar # .tar.gz
131 - name: Upload Linux native archive
132 uses: actions/upload-release-asset@v1
134 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
136 upload_url: ${{ steps.create_release.outputs.upload_url }}
137 asset_path: signal-cli-${{ steps.cli_ver.outputs.version }}-Linux-native.tar.gz
138 asset_name: signal-cli-${{ steps.cli_ver.outputs.version }}-Linux-native.tar.gz
139 asset_content_type: application/x-compressed-tar # .tar.gz
141 # - name: Upload windows archive
142 # uses: actions/upload-release-asset@v1
144 # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
146 # upload_url: ${{ steps.create_release.outputs.upload_url }}
147 # asset_path: signal-cli-${{ steps.cli_ver.outputs.version }}-Windows.tar.gz
148 # asset_name: signal-cli-${{ steps.cli_ver.outputs.version }}-Windows.tar.gz
149 # asset_content_type: application/x-compressed-tar # .tar.gz
151 # - name: Upload macos archive
152 # uses: actions/upload-release-asset@v1
154 # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
156 # upload_url: ${{ steps.create_release.outputs.upload_url }}
157 # asset_path: signal-cli-${{ steps.cli_ver.outputs.version }}-macOS.tar.gz
158 # asset_name: signal-cli-${{ steps.cli_ver.outputs.version }}-macOS.tar.gz
159 # asset_content_type: application/x-compressed-tar # .tar.gz
163 runs-on: ubuntu-latest
169 - uses: actions/checkout@v4
170 - name: Download signal-cli build from CI workflow
171 uses: actions/download-artifact@v3
173 - name: Get signal-cli version
176 ver="${GITHUB_REF_NAME#v}"
177 echo "version=${ver}" >> $GITHUB_OUTPUT
179 - name: Move archive file
181 ARCHIVE_DIR=$(ls signal-cli-archive-*/ -d | tail -n1)
182 tar xf ./"${ARCHIVE_DIR}"/*.tar.gz
183 rm -r signal-cli-archive-* signal-cli-native
184 mkdir -p build/install/
185 mv ./signal-cli-*/ build/install/signal-cli
189 uses: redhat-actions/buildah-build@v2
191 image: ${{ env.IMAGE_NAME }}
192 tags: latest ${{ github.sha }} ${{ steps.cli_ver.outputs.version }}
198 uses: redhat-actions/push-to-registry@v2
201 image: ${{ steps.build_image.outputs.image }}
202 tags: ${{ steps.build_image.outputs.tags }}
203 registry: ${{ env.IMAGE_REGISTRY }}
204 username: ${{ env.REGISTRY_USER }}
205 password: ${{ env.REGISTRY_PASSWORD }}
209 echo "${{ toJSON(steps.push.outputs) }}"
211 build-container-native:
213 runs-on: ubuntu-latest
219 - uses: actions/checkout@v4
220 - name: Download signal-cli build from CI workflow
221 uses: actions/download-artifact@v3
223 - name: Get signal-cli version
226 ver="${GITHUB_REF_NAME#v}"
227 echo "version=${ver}" >> $GITHUB_OUTPUT
229 - name: Move archive file
231 mkdir -p build/native/nativeCompile/
232 chmod +x ./signal-cli-native/signal-cli
233 mv ./signal-cli-native/signal-cli build/native/nativeCompile/
237 uses: redhat-actions/buildah-build@v2
239 image: ${{ env.IMAGE_NAME }}
240 tags: latest-native ${{ github.sha }}-native ${{ steps.cli_ver.outputs.version }}-native
242 ./native.Containerfile
246 uses: redhat-actions/push-to-registry@v2
249 image: ${{ steps.build_image.outputs.image }}
250 tags: ${{ steps.build_image.outputs.tags }}
251 registry: ${{ env.IMAGE_REGISTRY }}
252 username: ${{ env.REGISTRY_USER }}
253 password: ${{ env.REGISTRY_PASSWORD }}
257 echo "${{ toJSON(steps.push.outputs) }}"