-
Notifications
You must be signed in to change notification settings - Fork 75
96 lines (92 loc) · 3.91 KB
/
linux.yml
File metadata and controls
96 lines (92 loc) · 3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2019-2026 CESNET, zájmové sdružení právnických osob
name: Linux build
on:
workflow_call:
workflow_dispatch:
push:
branches:
- linux-build
jobs:
Ubuntu:
name: run Ubuntu
runs-on: ubuntu-22.04
env:
appimage_key: ${{ secrets.appimage_key }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SDK_URL: ${{ secrets.SDK_URL }}
steps:
- uses: actions/checkout@v4
- name: Fetch SDKs ETags
id: etags
run: |
$GITHUB_WORKSPACE/.github/scripts/get-etag.sh ndi\
https://downloads.ndi.tv/SDK/NDI_SDK_Linux/\
Install_NDI_SDK_v6_Linux.tar.gz >> $GITHUB_OUTPUT
- name: Run actions/cache for NDI
id: cache-ndi
uses: actions/cache@main
with:
path: /var/tmp/Install_NDI_SDK_Linux.tar.gz
key: cache-ndi-${{ runner.os }}-${{ steps.etags.outputs.ndi }}
- name: Download NDI
if: steps.cache-ndi.outputs.cache-hit != 'true'
run: "curl -Lf https://downloads.ndi.tv/SDK/NDI_SDK_Linux/\
Install_NDI_SDK_v6_Linux.tar.gz -o /var/tmp/Install_NDI_SDK_Linux.tar.gz"
- name: Cache FFmpeg
uses: actions/cache@main
with:
path: '/var/tmp/ffmpeg'
key: cache-ffmpeg-${{ runner.os }}-${{ hashFiles( '.github/scripts/Linux/install_ffmpeg.sh', '.github/scripts/Linux/install_other.sh', '.github/scripts/Linux/ffmpeg-patches/*') }}
- name: Cache SDL
uses: actions/cache@main
with:
path: '/var/tmp/sdl'
key: cache-sdl-${{ runner.os }}-${{ hashFiles( '.github/scripts/Linux/install_sdl.sh' ) }}
- name: Cache GLFW
uses: actions/cache@main
with:
path: '/var/tmp/glfw'
key: cache-glfw-${{ runner.os }}-${{ hashFiles( '.github/scripts/Linux/install_glfw.sh' ) }}
- name: bootstrap
run: |
. .github/scripts/environment.sh
.github/scripts/Linux/prepare.sh
- name: configure
run: "./autogen.sh $FEATURES || { RC=$?; cat config.log; exit $RC; }"
- name: make
run: make -j4
- name: make check
run: make check
- name: make distcheck
run: make distcheck
- name: check libc/libstdc++ ABI
run: .github/scripts/Linux/check_abi.sh 2.35 3.4.30 1.3.13 bin/* lib/ultragrid/*
- name: Create AppImage
run: data/scripts/Linux-AppImage/create-appimage.sh https://github.com/$GITHUB_REPOSITORY/releases/download/continuous/UltraGrid-$CHANNEL-x86_64.AppImage.zsync
- name: Test AppImage with Docker images
run: |
.github/scripts/Linux/docker_appimage_tests.sh
- name: Validate AppImage images
run: |
curl -LSf -O https://raw.githubusercontent.com/AppImage/pkg2appimage/\
master/appdir-lint.sh -O https://raw.githubusercontent.com/probonopd/\
AppImages/master/excludelist
sudo apt install desktop-file-utils libfile-mimeinfo-perl # desktop-file-validate, mimetype
bash appdir-lint.sh squashfs-root
- name: Compute checksum
run: sha256sum UltraGrid-$VERSION-x86_64.AppImage
- name: Upload Release Asset
id: upload-release
if: (github.repository == 'CESNET/UltraGrid' && github.ref == 'refs/heads/master') || startsWith(github.ref, 'refs/tags/')
run: |
sudo apt install jq zsync
zsyncmake -C -u https://github.com/$GITHUB_REPOSITORY/releases/download/$TAG/UltraGrid-$VERSION-x86_64.AppImage -o UltraGrid-$CHANNEL-x86_64.AppImage.zsync UltraGrid-$VERSION-x86_64.AppImage
.github/scripts/replace-asset.sh continuous UltraGrid-$CHANNEL-x86_64.AppImage.zsync application/x-zsync AppImage%20${CHANNEL}%20zsync
.github/scripts/replace-asset.sh $TAG UltraGrid-$VERSION-x86_64.AppImage application/x-appimage Linux%20build
- name: Upload Build
if: steps.upload-release.conclusion == 'skipped'
uses: actions/upload-artifact@main
with:
name: UltraGrid-Linux
path: UltraGrid-${{ env.VERSION }}-x86_64.AppImage