release: prepare 0.1.2 #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/** |