Skip to content

release: prepare 0.1.2 #4

release: prepare 0.1.2

release: prepare 0.1.2 #4

Workflow file for this run

name: Release
on:
push:
tags:
- "v*"
workflow_dispatch:
jobs:
package-linux:
runs-on: ubuntu-24.04
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Checkout icey
uses: actions/checkout@v4
with:
repository: nilstate/icey
path: icey
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
gcc-13 g++-13 \
cmake \
dpkg-dev \
libssl-dev \
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev \
unzip zip
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
- name: Build release package
env:
CC: gcc-13
CXX: g++-13
ICEY_SOURCE_DIR: ${{ github.workspace }}/icey
BUILD_DIR: ${{ github.workspace }}/build-release
run: ./scripts/package-manager-check.sh
- name: Check Docker Hub credentials
if: startsWith(github.ref, 'refs/tags/')
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
run: |
test -n "$DOCKERHUB_USERNAME" || {
echo "DOCKERHUB_USERNAME is required to publish the 0state/icey-server image" >&2
exit 1
}
test -n "$DOCKERHUB_TOKEN" || {
echo "DOCKERHUB_TOKEN is required to publish the 0state/icey-server image" >&2
exit 1
}
- name: Derive image version
if: startsWith(github.ref, 'refs/tags/')
id: image_version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
if: startsWith(github.ref, 'refs/tags/')
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
if: startsWith(github.ref, 'refs/tags/')
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract image metadata
if: startsWith(github.ref, 'refs/tags/')
id: image_meta
uses: docker/metadata-action@v5
with:
images: 0state/icey-server
tags: |
type=raw,value=${{ steps.image_version.outputs.version }}
type=raw,value=latest
- name: Build and push image
if: startsWith(github.ref, 'refs/tags/')
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/Dockerfile
push: true
build-args: |
ICEY_SERVER_BINARY=build-release/src/server/icey-server
ICEY_WEB_ROOT=web/dist
ICEY_SAMPLE_MEDIA=icey/data/test.mp4
ICEY_ENTRYPOINT=docker/entrypoint.sh
tags: ${{ steps.image_meta.outputs.tags }}
labels: ${{ steps.image_meta.outputs.labels }}
- name: Upload release assets
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
icey-cli-*-source.tar.gz
icey-*-source.tar.gz
icey-server-*-Linux-x86_64.tar.gz
icey-server-*-Linux-x86_64.zip
icey-server-Linux-x86_64.tar.gz
icey-server-Linux-x86_64.zip
icey-server_*.deb
icey-server-apt-repo-*.tar.gz
- name: Upload manifest bundle
uses: actions/upload-artifact@v4
with:
name: icey-server-package-managers
path: |
.stage/package-managers/rendered/**