Skip to content

recpt1のバージョンを更新 #17

recpt1のバージョンを更新

recpt1のバージョンを更新 #17

Workflow file for this run

name: release
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# コンパイラーをインストールする
# 参照:https://github.com/macaron/recpt1-static-build
- name: Install Compiler
working-directory: /usr/local/bin
run: |
wget https://musl.libc.org/releases/musl-latest.tar.gz
tar -xvf musl-latest.tar.gz
cd musl-latest
./configure --prefix=$HOME/musl --exec-prefix=$HOME --syslibdir=$HOME/musl/lib
make -j$(nproc)
make install
echo "$HOME/bin" >> $GITHUB_PATH
- name: Show Version for musl-gcc
run: musl-gcc -v
# recpt1をビルドする前に、仮想TVチューナデバイスを作成する(PT3×2台分)
- name: Create a temporary device file
run: |
sudo mknod /dev/pt3video0 c 235 0
sudo mknod /dev/pt3video1 c 235 1
sudo mknod /dev/pt3video2 c 235 2
sudo mknod /dev/pt3video3 c 235 3
sudo mknod /dev/pt3video4 c 235 4
sudo mknod /dev/pt3video5 c 235 5
sudo mknod /dev/pt3video6 c 235 6
sudo mknod /dev/pt3video7 c 235 7
sudo chmod a+rw /dev/pt3video0
sudo chmod a+rw /dev/pt3video1
sudo chmod a+rw /dev/pt3video2
sudo chmod a+rw /dev/pt3video3
sudo chmod a+rw /dev/pt3video4
sudo chmod a+rw /dev/pt3video5
sudo chmod a+rw /dev/pt3video6
sudo chmod a+rw /dev/pt3video7
# タグ名を取得し、バージョン番号を設定する
- name: Set_version
id: set_version
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION=${GITHUB_REF/refs\/tags\//}
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "archive_path=recpt1_${VERSION}.zip" >> $ENV:GITHUB_OUTPUT
# recpt1をスタティックビルドし、バイナリファイルを作成する
- name: Build for recpt1
working-directory: recpt1
run: |
sudo apt-get install -y --no-install-recommends autoconf automake
sed -i 's/CFLAGS = -O2 -g -pthread/CFLAGS = -static -O2 -g -pthread/g' Makefile.in
sed -i 's/LDFLAGS =/LDFLAGS = -static/g' Makefile.in
./autogen.sh
./configure CC=musl-gcc --enable-b25
make
- name: Show Version for recpt1
working-directory: recpt1
run: |
file recpt1
./recpt1 -v
# バイナリファイルを、ZIP形式で圧縮する
- name: Compress binary files into a zip file
run: |
mkdir recpt1_bin
Copy-Item -Path "./recpt1/recpt1" -Destination "./recpt1_bin/recpt1" -Force
Copy-Item -Path "./recpt1/recpt1ctl" -Destination "./recpt1_bin/recpt1ctl" -Force
Copy-Item -Path "./recpt1/checksignal" -Destination "./recpt1_bin/checksignal" -Force
7z a -tzip ${{ steps.set_version.outputs.archive_path }} recpt1_bin
# バイナリファイルをアップする
- name: upload_release_asset
uses: actions/upload-artifact@v4
# タグが push された場合のみ実行される
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# リリースするバイナリファイル
files: |
name: ${{ steps.set_version.outputs.archive_path }}
path: ${{ steps.set_version.outputs.archive_path }}
# リリース文書を作成する
- name: create_release
uses: shogo82148/actions-create-release@v1
id: create_release
# タグが push された場合のみ実行され
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.set_version.outputs.version }}
release_name: recpt1 ${{ steps.set_version.outputs.version }} Release
body: |
リリースの作成テストです。
下書きかつプレリリースの状態で作成されます。
draft: true # 下書き状態で作成する場合は true (省略時 false)
prerelease: true # プレリリース表示を付ける場合は true (省略時 false)