mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-03-13 02:23:38 +00:00
198 lines
6.3 KiB
YAML
198 lines
6.3 KiB
YAML
name: release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
|
|
permissions: {}
|
|
|
|
env:
|
|
IMAGE_NAME: signal-cli
|
|
IMAGE_REGISTRY: ghcr.io/asamk
|
|
REGISTRY_USER: ${{ github.actor }}
|
|
REGISTRY_PASSWORD: ${{ github.token }}
|
|
|
|
jobs:
|
|
build:
|
|
uses: AsamK/signal-cli/.github/workflows/build.yml@master
|
|
|
|
release:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
outputs:
|
|
version: ${{ steps.version.outputs.version }}
|
|
steps:
|
|
- name: Download signal-cli build from CI workflow
|
|
uses: actions/download-artifact@v8
|
|
|
|
- name: Get signal-cli version
|
|
id: version
|
|
run: |
|
|
mv ./signal-cli-build/* .
|
|
echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Create release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: v${{ steps.version.outputs.version }} # note: added `v`
|
|
release_name: v${{ steps.version.outputs.version }} # note: added `v`
|
|
draft: true
|
|
|
|
- name: Upload archive
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: signal-cli-${{ steps.version.outputs.version }}.tar.gz
|
|
asset_name: signal-cli-${{ steps.version.outputs.version }}.tar.gz
|
|
asset_content_type: application/x-compressed-tar # .tar.gz
|
|
|
|
- name: Upload Linux native archive
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: signal-cli-${{ steps.version.outputs.version }}-Linux-native.tar.gz
|
|
asset_name: signal-cli-${{ steps.version.outputs.version }}-Linux-native.tar.gz
|
|
asset_content_type: application/x-compressed-tar # .tar.gz
|
|
|
|
- name: Upload Linux client archive
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: signal-cli-${{ steps.version.outputs.version }}-Linux-client.tar.gz
|
|
asset_name: signal-cli-${{ steps.version.outputs.version }}-Linux-client.tar.gz
|
|
asset_content_type: application/x-compressed-tar # .tar.gz
|
|
|
|
build-container:
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
packages: write
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Download signal-cli build from CI workflow
|
|
uses: actions/download-artifact@v8
|
|
|
|
- name: Move archive file
|
|
run: |
|
|
tar xf ./signal-cli-build/signal-cli-${{ needs.release.outputs.version }}.tar.gz
|
|
mkdir -p build/install/
|
|
mv ./signal-cli-"${{ needs.release.outputs.version }}"/ build/install/signal-cli
|
|
|
|
- name: Build Image
|
|
id: build_image
|
|
uses: redhat-actions/buildah-build@v2
|
|
with:
|
|
image: ${{ env.IMAGE_NAME }}
|
|
tags: latest ${{ github.sha }} ${{ needs.release.outputs.version }}
|
|
containerfiles: ./Containerfile
|
|
oci: true
|
|
|
|
- name: Push To GHCR
|
|
uses: redhat-actions/push-to-registry@v2
|
|
id: push
|
|
with:
|
|
image: ${{ steps.build_image.outputs.image }}
|
|
tags: ${{ steps.build_image.outputs.tags }}
|
|
registry: ${{ env.IMAGE_REGISTRY }}
|
|
username: ${{ env.REGISTRY_USER }}
|
|
password: ${{ env.REGISTRY_PASSWORD }}
|
|
|
|
- name: Echo outputs
|
|
run: |
|
|
echo "${{ toJSON(steps.push.outputs) }}"
|
|
|
|
build-container-native:
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
packages: write
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Download signal-cli build from CI workflow
|
|
uses: actions/download-artifact@v8
|
|
|
|
- name: Move archive file
|
|
run: |
|
|
tar xf ./signal-cli-build/signal-cli-${{ needs.release.outputs.version }}-Linux-native.tar.gz
|
|
mkdir -p build/native/nativeCompile/
|
|
mv signal-cli build/native/nativeCompile/
|
|
chmod +x build/native/nativeCompile/signal-cli
|
|
|
|
- name: Build Image
|
|
id: build_image
|
|
uses: redhat-actions/buildah-build@v2
|
|
with:
|
|
image: ${{ env.IMAGE_NAME }}
|
|
tags: latest-native ${{ github.sha }}-native ${{ needs.release.outputs.version }}-native
|
|
containerfiles: ./native.Containerfile
|
|
oci: true
|
|
|
|
- name: Push To GHCR
|
|
uses: redhat-actions/push-to-registry@v2
|
|
id: push
|
|
with:
|
|
image: ${{ steps.build_image.outputs.image }}
|
|
tags: ${{ steps.build_image.outputs.tags }}
|
|
registry: ${{ env.IMAGE_REGISTRY }}
|
|
username: ${{ env.REGISTRY_USER }}
|
|
password: ${{ env.REGISTRY_PASSWORD }}
|
|
|
|
- name: Echo outputs
|
|
run: |
|
|
echo "${{ toJSON(steps.push.outputs) }}"
|
|
|
|
build-container-client:
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
packages: write
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Download signal-cli build from CI workflow
|
|
uses: actions/download-artifact@v8
|
|
|
|
- name: Move archive file
|
|
run: |
|
|
tar xf ./signal-cli-build/signal-cli-${{ needs.release.outputs.version }}-Linux-client.tar.gz
|
|
mkdir -p client/target/release/
|
|
mv signal-cli-client client/target/release/
|
|
chmod +x client/target/release/signal-cli-client
|
|
|
|
- name: Build Image
|
|
id: build_image
|
|
uses: redhat-actions/buildah-build@v2
|
|
with:
|
|
image: ${{ env.IMAGE_NAME }}
|
|
tags: latest-client ${{ github.sha }}-client ${{ needs.release.outputs.version }}-client
|
|
containerfiles: ./client.Containerfile
|
|
oci: true
|
|
|
|
- name: Push To GHCR
|
|
uses: redhat-actions/push-to-registry@v2
|
|
id: push
|
|
with:
|
|
image: ${{ steps.build_image.outputs.image }}
|
|
tags: ${{ steps.build_image.outputs.tags }}
|
|
registry: ${{ env.IMAGE_REGISTRY }}
|
|
username: ${{ env.REGISTRY_USER }}
|
|
password: ${{ env.REGISTRY_PASSWORD }}
|
|
|
|
- name: Echo outputs
|
|
run: |
|
|
echo "${{ toJSON(steps.push.outputs) }}"
|