├── renovate.json ├── .github └── workflows │ ├── release.yml │ ├── deploy.yml │ ├── NicoJK.yml │ ├── MuteInact.yml │ ├── TVTestVideoDecoder.yml │ ├── CasProcessor.yml │ ├── TTRec.yml │ ├── TVCaption3.yml │ ├── BonDriver_EPGStation.yml │ ├── TvCas.yml │ ├── TVCaptionMod2.yml │ ├── px4_drv.yml │ ├── TvtPlay.yml │ ├── TVTest.yml │ └── TVTComment.yml ├── Patch └── TvtComment.DoNotGenerateSingleExe.patch ├── LICENSE └── README.md /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "github>SlashNephy/.github:renovate-config" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | workflow_call: 5 | inputs: 6 | artifact-name: 7 | required: true 8 | type: string 9 | 10 | permissions: 11 | contents: write 12 | 13 | jobs: 14 | release: 15 | if: startsWith(github.ref, 'refs/tags/') 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Download Artifact 19 | uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 20 | with: 21 | path: '${{ inputs.artifact-name }}' 22 | name: '${{ inputs.artifact-name }}' 23 | 24 | - name: Create Release Zip 25 | run: zip -r ${{ inputs.artifact-name }}.zip ${{ inputs.artifact-name }}/ 26 | 27 | - name: Upload Release 28 | uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 29 | with: 30 | files: '${{ inputs.artifact-name }}.zip' 31 | env: 32 | GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' 33 | -------------------------------------------------------------------------------- /Patch/TvtComment.DoNotGenerateSingleExe.patch: -------------------------------------------------------------------------------- 1 | diff --git a/TVTComment/Properties/PublishProfiles/ReleaseProfile.pubxml b/TVTComment/Properties/PublishProfiles/ReleaseProfile.pubxml 2 | index 65d7e3a..5e41a74 100644 3 | --- a/TVTComment/Properties/PublishProfiles/ReleaseProfile.pubxml 4 | +++ b/TVTComment/Properties/PublishProfiles/ReleaseProfile.pubxml 5 | @@ -9,9 +9,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121. 6 | bin\Release\net8.0-windows\publish\ 7 | FileSystem 8 | net8.0-windows 9 | - true 10 | - win-x86 11 | - True 12 | + false 13 | + win-x64 14 | + False 15 | False 16 | False 17 | true 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Nep 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: 4 | workflow_call: 5 | inputs: 6 | artifact-name: 7 | required: true 8 | type: string 9 | secrets: 10 | GH_PAT: 11 | required: true 12 | 13 | permissions: {} 14 | 15 | jobs: 16 | deploy: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout Target Repository 20 | uses: actions/checkout@v4 21 | with: 22 | repository: 'StarryBlueSky/TVTest-distribution' 23 | token: '${{ secrets.GH_PAT }}' 24 | 25 | - name: Download Artifact 26 | uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 27 | with: 28 | name: '${{ inputs.artifact-name }}' 29 | 30 | - name: Prepare Commit Message 31 | id: message 32 | run: echo "::set-output name=commit_message::🆙 `date '+%Y-%m-%d'` (${ARTIFACT_NAME}, ${COMMIT_HASH:0:7})" 33 | env: 34 | TZ: 'Asia/Tokyo' 35 | ARTIFACT_NAME: '${{ inputs.artifact-name }}' 36 | COMMIT_HASH: '${{ github.sha }}' 37 | 38 | - name: Pull 39 | run: git pull 40 | 41 | - name: Push to Target Repository 42 | uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0 43 | continue-on-error: true 44 | with: 45 | commit_message: '${{ steps.message.outputs.commit_message }}' 46 | commit_author: 'StarryBlueSky-bot <97773209+StarryBlueSky-bot@users.noreply.github.com>' 47 | -------------------------------------------------------------------------------- /.github/workflows/NicoJK.yml: -------------------------------------------------------------------------------- 1 | name: NicoJK 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/NicoJK.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: false 20 | - platform: Win32 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xtne6f/NicoJK 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (NicoJK.sln) 38 | run: msbuild NicoJK.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 39 | 40 | - name: Prepare Artifacts 41 | shell: powershell 42 | run: | 43 | New-Item -Path Artifact/Plugins -ItemType Directory 44 | Copy-Item -Path ${{ matrix.platform }}/NicoJK.tvtp -Destination Artifact/Plugins/ 45 | 46 | - name: Upload Artifact 47 | uses: actions/upload-artifact@v4 48 | with: 49 | name: NicoJK_${{ matrix.platform }} 50 | if-no-files-found: error 51 | path: Artifact/ 52 | 53 | - name: Set Job Outputs 54 | id: output 55 | uses: actions/github-script@v7 56 | with: 57 | script: | 58 | core.setOutput("artifact", "NicoJK_${{ matrix.platform }}") 59 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 60 | 61 | release: 62 | needs: build 63 | uses: ./.github/workflows/release.yml 64 | with: 65 | artifact-name: '${{ needs.build.outputs.artifact }}' 66 | permissions: 67 | contents: write 68 | 69 | deploy: 70 | needs: build 71 | if: needs.build.outputs.should_deploy == 'true' 72 | uses: ./.github/workflows/deploy.yml 73 | with: 74 | artifact-name: '${{ needs.build.outputs.artifact }}' 75 | secrets: inherit 76 | permissions: {} 77 | -------------------------------------------------------------------------------- /.github/workflows/MuteInact.yml: -------------------------------------------------------------------------------- 1 | name: MuteInact 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/MuteInact.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | - platform: x86 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: SlashNephy/MuteInact 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (MuteInact.sln) 38 | run: msbuild MuteInact.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 39 | 40 | - name: Prepare Artifacts 41 | shell: powershell 42 | run: | 43 | New-Item -Path Artifact/Plugins -ItemType Directory 44 | Copy-Item -Path ${{ matrix.platform }}/MuteInact.tvtp -Destination Artifact/Plugins/ 45 | 46 | - name: Upload Artifact 47 | uses: actions/upload-artifact@v4 48 | with: 49 | name: MuteInact_${{ matrix.platform }} 50 | if-no-files-found: error 51 | path: Artifact/ 52 | 53 | - name: Set Job Outputs 54 | id: output 55 | uses: actions/github-script@v7 56 | with: 57 | script: | 58 | core.setOutput("artifact", "MuteInact_${{ matrix.platform }}") 59 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 60 | 61 | release: 62 | needs: build 63 | uses: ./.github/workflows/release.yml 64 | with: 65 | artifact-name: '${{ needs.build.outputs.artifact }}' 66 | permissions: 67 | contents: write 68 | 69 | deploy: 70 | needs: build 71 | if: needs.build.outputs.should_deploy == 'true' 72 | uses: ./.github/workflows/deploy.yml 73 | with: 74 | artifact-name: '${{ needs.build.outputs.artifact }}' 75 | secrets: inherit 76 | permissions: {} 77 | -------------------------------------------------------------------------------- /.github/workflows/TVTestVideoDecoder.yml: -------------------------------------------------------------------------------- 1 | name: TVTestVideoDecoder 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TVTestVideoDecoder.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | - platform: Win32 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: DBCTRADO/TVTestVideoDecoder 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild 38 | working-directory: src 39 | run: msbuild /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 40 | 41 | - name: Prepare Artifact 42 | shell: powershell 43 | run: | 44 | New-Item -Path Artifact -ItemType Directory 45 | Copy-Item -Path src/${{ matrix.platform }}/Release/TVTestVideoDecoder.ax -Destination Artifact/ 46 | 47 | - name: Upload Artifact 48 | uses: actions/upload-artifact@v4 49 | with: 50 | name: TVTestVideoDecoder_${{ matrix.platform }} 51 | path: Artifact/ 52 | if-no-files-found: error 53 | 54 | - name: Set Job Outputs 55 | id: output 56 | uses: actions/github-script@v7 57 | with: 58 | script: | 59 | core.setOutput("artifact", "TVTestVideoDecoder_${{ matrix.platform }}") 60 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 61 | 62 | release: 63 | needs: build 64 | uses: ./.github/workflows/release.yml 65 | with: 66 | artifact-name: '${{ needs.build.outputs.artifact }}' 67 | permissions: 68 | contents: write 69 | 70 | deploy: 71 | needs: build 72 | if: needs.build.outputs.should_deploy == 'true' 73 | uses: ./.github/workflows/deploy.yml 74 | with: 75 | artifact-name: '${{ needs.build.outputs.artifact }}' 76 | secrets: inherit 77 | permissions: {} 78 | -------------------------------------------------------------------------------- /.github/workflows/CasProcessor.yml: -------------------------------------------------------------------------------- 1 | name: CasProcessor 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/CasProcessor.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: false 20 | - platform: Win32 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: logue/CasProcessor 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (CasProcessor.sln) 38 | run: | 39 | chcp 932 40 | msbuild CasProcessor.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 41 | 42 | - name: Prepare Artifacts 43 | shell: powershell 44 | run: | 45 | New-Item -Path Artifact/Plugins -ItemType Directory 46 | Copy-Item -Path ${{ matrix.platform }}/Release/CasProcessor.tvtp -Destination Artifact/Plugins/ 47 | 48 | - name: Upload Artifact 49 | uses: actions/upload-artifact@v4 50 | with: 51 | name: CasProcessor_${{ matrix.platform }} 52 | if-no-files-found: error 53 | path: Artifact/ 54 | 55 | - name: Set Job Outputs 56 | id: output 57 | uses: actions/github-script@v7 58 | with: 59 | script: | 60 | core.setOutput("artifact", "CasProcessor_${{ matrix.platform }}") 61 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 62 | 63 | release: 64 | needs: build 65 | uses: ./.github/workflows/release.yml 66 | with: 67 | artifact-name: '${{ needs.build.outputs.artifact }}' 68 | permissions: 69 | contents: write 70 | 71 | deploy: 72 | needs: build 73 | if: needs.build.outputs.should_deploy == 'true' 74 | uses: ./.github/workflows/deploy.yml 75 | with: 76 | artifact-name: '${{ needs.build.outputs.artifact }}' 77 | secrets: inherit 78 | permissions: {} 79 | -------------------------------------------------------------------------------- /.github/workflows/TTRec.yml: -------------------------------------------------------------------------------- 1 | name: TTRec 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TTRec.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | - platform: x86 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository (TTRec) 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xtne6f/TTRec 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (TTRec.VS2015.sln) 38 | working-directory: src 39 | run: msbuild TTRec.VS2015.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 40 | 41 | - name: Prepare Artifacts 42 | shell: powershell 43 | run: | 44 | New-Item -Path Artifact/Plugins -ItemType Directory 45 | Copy-Item -Path src/${{ matrix.platform }}/TTRec.tvtp -Destination Artifact/Plugins/ 46 | 47 | - name: Upload Artifact 48 | uses: actions/upload-artifact@v4 49 | with: 50 | name: TTRec_${{ matrix.platform }} 51 | if-no-files-found: error 52 | path: Artifact/ 53 | 54 | - name: Set Job Outputs 55 | id: output 56 | uses: actions/github-script@v7 57 | with: 58 | script: | 59 | core.setOutput("artifact", "TTRec_${{ matrix.platform }}") 60 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 61 | 62 | release: 63 | needs: build 64 | uses: ./.github/workflows/release.yml 65 | with: 66 | artifact-name: '${{ needs.build.outputs.artifact }}' 67 | permissions: 68 | contents: write 69 | 70 | deploy: 71 | needs: build 72 | if: needs.build.outputs.should_deploy == 'true' 73 | uses: ./.github/workflows/deploy.yml 74 | with: 75 | artifact-name: '${{ needs.build.outputs.artifact }}' 76 | secrets: inherit 77 | permissions: {} 78 | -------------------------------------------------------------------------------- /.github/workflows/TVCaption3.yml: -------------------------------------------------------------------------------- 1 | name: TVCaption3 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TVCaption3.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | - platform: x86 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xtne6f/TVCaption3 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (TVCaption3.sln.sln) 38 | working-directory: src 39 | run: msbuild TVCaption3.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 40 | 41 | - name: Prepare Artifacts 42 | shell: powershell 43 | run: | 44 | New-Item -Path Artifact/Plugins -ItemType Directory 45 | Copy-Item -Path src/${{ matrix.platform }}/TVCaption3.tvtp -Destination Artifact/Plugins/ 46 | 47 | - name: Upload Artifact 48 | uses: actions/upload-artifact@v4 49 | with: 50 | name: TVCaption3_${{ matrix.platform }} 51 | if-no-files-found: error 52 | path: Artifact/ 53 | 54 | - name: Set Job Outputs 55 | id: output 56 | uses: actions/github-script@v7 57 | with: 58 | script: | 59 | core.setOutput("artifact", "TVCaption3_${{ matrix.platform }}") 60 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 61 | 62 | release: 63 | needs: build 64 | uses: ./.github/workflows/release.yml 65 | with: 66 | artifact-name: '${{ needs.build.outputs.artifact }}' 67 | permissions: 68 | contents: write 69 | 70 | deploy: 71 | needs: build 72 | if: needs.build.outputs.should_deploy == 'true' 73 | uses: ./.github/workflows/deploy.yml 74 | with: 75 | artifact-name: '${{ needs.build.outputs.artifact }}' 76 | secrets: inherit 77 | permissions: {} 78 | -------------------------------------------------------------------------------- /.github/workflows/BonDriver_EPGStation.yml: -------------------------------------------------------------------------------- 1 | name: BonDriver_EPGStation 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/BonDriver_EPGStation.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: false 20 | - platform: Win32 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xqq/BonDriver_EPGStation 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: Generate CMake 38 | run: cmake -DCMAKE_BUILD_TYPE=MinSizeRel -A ${{ matrix.platform }} . 39 | 40 | - name: CMake 41 | run: cmake --build . --config MinSizeRel -j4 42 | 43 | - name: Prepare Artifacts 44 | shell: powershell 45 | run: | 46 | New-Item -Path Artifact -ItemType Directory 47 | Copy-Item -Path MinSizeRel/BonDriver_EPGStation.dll -Destination Artifact/ 48 | Copy-Item -Path BonDriver_EPGStation.yml -Destination Artifact/ 49 | 50 | - name: Upload Artifact 51 | uses: actions/upload-artifact@v4 52 | with: 53 | name: BonDriver_EPGStation_${{ matrix.platform }} 54 | if-no-files-found: error 55 | path: Artifact/ 56 | 57 | - name: Set Job Outputs 58 | id: output 59 | uses: actions/github-script@v7 60 | with: 61 | script: | 62 | core.setOutput("artifact", "BonDriver_EPGStation_${{ matrix.platform }}") 63 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 64 | 65 | release: 66 | needs: build 67 | uses: ./.github/workflows/release.yml 68 | with: 69 | artifact-name: '${{ needs.build.outputs.artifact }}' 70 | permissions: 71 | contents: write 72 | 73 | deploy: 74 | needs: build 75 | if: needs.build.outputs.should_deploy == 'true' 76 | uses: ./.github/workflows/deploy.yml 77 | with: 78 | artifact-name: '${{ needs.build.outputs.artifact }}' 79 | secrets: inherit 80 | permissions: {} 81 | -------------------------------------------------------------------------------- /.github/workflows/TvCas.yml: -------------------------------------------------------------------------------- 1 | name: TvCas 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TvCas.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: false 20 | # - platform: x86 21 | # deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: logue/TvCas 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (TvCas.sln, B25.tvcas) 38 | run: msbuild TvCas.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 -m /p:PlatformToolset=v143 39 | 40 | - name: MSBuild (TvCas.sln, SPHD.tvcas) 41 | run: msbuild TvCas.sln /p:Configuration="ReleaseSPHD" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 -m /p:PlatformToolset=v143 42 | 43 | - name: Prepare Artifacts 44 | shell: powershell 45 | run: | 46 | New-Item -Path Artifact -ItemType Directory 47 | Copy-Item -Path ${{ matrix.platform }}/Release/B25.tvcas -Destination Artifact/ 48 | Copy-Item -Path ${{ matrix.platform }}/ReleaseSPHD/SPHD.tvcas -Destination Artifact/ 49 | 50 | - name: Upload Artifact 51 | uses: actions/upload-artifact@v4 52 | with: 53 | name: TvCas_${{ matrix.platform }} 54 | if-no-files-found: error 55 | path: Artifact/ 56 | 57 | - name: Set Job Outputs 58 | id: output 59 | uses: actions/github-script@v7 60 | with: 61 | script: | 62 | core.setOutput("artifact", "TvCas_${{ matrix.platform }}") 63 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 64 | 65 | release: 66 | needs: build 67 | uses: ./.github/workflows/release.yml 68 | with: 69 | artifact-name: '${{ needs.build.outputs.artifact }}' 70 | permissions: 71 | contents: write 72 | 73 | deploy: 74 | needs: build 75 | if: needs.build.outputs.should_deploy == 'true' 76 | uses: ./.github/workflows/deploy.yml 77 | with: 78 | artifact-name: '${{ needs.build.outputs.artifact }}' 79 | secrets: inherit 80 | permissions: {} 81 | -------------------------------------------------------------------------------- /.github/workflows/TVCaptionMod2.yml: -------------------------------------------------------------------------------- 1 | name: TVCaptionMod2 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TVCaptionMod2.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | - platform: Win32 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xtne6f/TVCaptionMod2 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (Caption.sln) 38 | working-directory: Caption_src 39 | run: msbuild Caption.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 -m /p:PlatformToolset=v143 40 | 41 | - name: MSBuild (TVCaption2.sln) 42 | working-directory: src 43 | run: msbuild TVCaption2.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 44 | 45 | - name: Prepare Artifacts 46 | shell: powershell 47 | run: | 48 | New-Item -Path Artifact/Plugins/TVCaptionMod2 -ItemType Directory 49 | Copy-Item -Path src/${{ matrix.platform }}/TVCaptionMod2.tvtp -Destination Artifact/Plugins 50 | Copy-Item -Path gaiji/* -Filter TVCaptionMod2_Gaiji_*.txt -Destination Artifact/Plugins -Recurse 51 | Copy-Item -Path src/rom/*.wav -Destination Artifact/Plugins/TVCaptionMod2/ 52 | 53 | - name: Upload Artifact 54 | uses: actions/upload-artifact@v4 55 | with: 56 | name: TVCaptionMod2_${{ matrix.platform }} 57 | if-no-files-found: error 58 | path: Artifact/ 59 | 60 | - name: Set Job Outputs 61 | id: output 62 | uses: actions/github-script@v7 63 | with: 64 | script: | 65 | core.setOutput("artifact", "TVCaptionMod2_${{ matrix.platform }}") 66 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 67 | 68 | release: 69 | needs: build 70 | uses: ./.github/workflows/release.yml 71 | with: 72 | artifact-name: '${{ needs.build.outputs.artifact }}' 73 | permissions: 74 | contents: write 75 | 76 | deploy: 77 | needs: build 78 | if: needs.build.outputs.should_deploy == 'true' 79 | uses: ./.github/workflows/deploy.yml 80 | with: 81 | artifact-name: '${{ needs.build.outputs.artifact }}' 82 | secrets: inherit 83 | permissions: {} 84 | -------------------------------------------------------------------------------- /.github/workflows/px4_drv.yml: -------------------------------------------------------------------------------- 1 | name: px4_drv 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/px4_drv.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: false 20 | - platform: x86 21 | deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | with: 31 | repository: nns779/px4_drv 32 | ref: winusb 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (px4_winusb.sln) 38 | working-directory: winusb 39 | run: msbuild px4_winusb.sln /p:Configuration="Release-static" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}\" -m /p:PlatformToolset=v143 40 | 41 | - name: Prepare Artifacts 42 | shell: powershell 43 | run: | 44 | New-Item -Path Artifact/px4_drv -ItemType Directory 45 | Copy-Item -Path winusb/src/fwtool/${{ matrix.platform }}/fwtool.exe -Destination Artifact/px4_drv/ 46 | Copy-Item -Path winusb/pkg/inf -Destination Artifact/px4_drv/inf -Recurse 47 | Copy-Item -Path winusb/pkg/BonDriver_PX4 -Destination Artifact/px4_drv/BonDriver_PX4 -Recurse 48 | Copy-Item -Path winusb/src/BonDriver_PX4/${{ matrix.platform }}/BonDriver_PX4.dll -Destination Artifact/px4_drv/BonDriver_PX4/ 49 | Copy-Item -Path winusb/pkg/DriverHost_PX4 -Destination Artifact/px4_drv/DriverHost_PX4 -Recurse 50 | Copy-Item -Path winusb/src/DriverHost_PX4/${{ matrix.platform }}/DriverHost_PX4.exe -Destination Artifact/px4_drv/DriverHost_PX4/ 51 | 52 | - name: Upload Artifact 53 | uses: actions/upload-artifact@v4 54 | with: 55 | name: px4_drv_winusb_${{ matrix.platform }} 56 | if-no-files-found: error 57 | path: Artifact/ 58 | 59 | - name: Set Job Outputs 60 | id: output 61 | uses: actions/github-script@v7 62 | with: 63 | script: | 64 | core.setOutput("artifact", "px4_drv_winusb_${{ matrix.platform }}") 65 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 66 | 67 | release: 68 | needs: build 69 | uses: ./.github/workflows/release.yml 70 | with: 71 | artifact-name: '${{ needs.build.outputs.artifact }}' 72 | permissions: 73 | contents: write 74 | 75 | deploy: 76 | needs: build 77 | if: needs.build.outputs.should_deploy == 'true' 78 | uses: ./.github/workflows/deploy.yml 79 | with: 80 | artifact-name: '${{ needs.build.outputs.artifact }}' 81 | secrets: inherit 82 | permissions: {} 83 | -------------------------------------------------------------------------------- /.github/workflows/TvtPlay.yml: -------------------------------------------------------------------------------- 1 | name: TvtPlay 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TvtPlay.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | deploy: true 20 | # - platform: Win32 21 | # deploy: false 22 | 23 | outputs: 24 | artifact: ${{ steps.output.outputs.artifact }} 25 | should_deploy: ${{ steps.output.outputs.should_deploy }} 26 | 27 | steps: 28 | - name: Checkout Repository (TvtPlay) 29 | uses: actions/checkout@v4 30 | with: 31 | repository: xtne6f/TvtPlay 32 | submodules: recursive 33 | 34 | - name: Setup MSBuild 35 | uses: microsoft/setup-msbuild@v2 36 | 37 | - name: MSBuild (TvtPlay.sln) 38 | working-directory: src 39 | run: msbuild TvtPlay.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 40 | 41 | - name: MSBuild (BonDriver_Pipe.sln) 42 | working-directory: BonDriver_Pipe_src 43 | run: msbuild BonDriver_Pipe.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:CodePage=932 /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 44 | 45 | - name: Patch SoundTouch.vcxproj (SoundTouch) 46 | working-directory: TvtAudioStretchFilter_src/soundtouch 47 | run: git apply ..\SoundTouch.patch 48 | - name: Patch SoundTouch.vcxproj (SoundTouch) 49 | working-directory: TvtAudioStretchFilter_src/soundtouch/source/SoundTouch 50 | # コマンドラインから /MD を有効にできないのでプロジェクトファイルを直接書き換える 51 | run: | 52 | $ProjectFile = ".\SoundTouch.vcxproj" 53 | $Content = Get-Content $ProjectFile | % { $_ -replace ".+","MultiThreadedDLL" } 54 | $Content | Out-File $ProjectFile -Encoding UTF8 55 | - name: MSBuild (SoundTouch.vcxproj) 56 | working-directory: TvtAudioStretchFilter_src/soundtouch/source/SoundTouch 57 | run: msbuild SoundTouch.vcxproj /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 58 | 59 | - name: Patch BaseClasses.vcxproj (SoundTouch) 60 | working-directory: TvtAudioStretchFilter_src/baseclasses 61 | # コマンドラインから /MD を有効にできないのでプロジェクトファイルを直接書き換える 62 | run: | 63 | $ProjectFile = ".\BaseClasses.vcxproj" 64 | $Content = Get-Content $ProjectFile | % { $_ -replace ".+","MultiThreadedDLL" } 65 | $Content | Out-File $ProjectFile -Encoding UTF8 66 | - name: MSBuild (BaseClasses.vcxproj) 67 | working-directory: TvtAudioStretchFilter_src/baseclasses 68 | run: msbuild BaseClasses.vcxproj /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 69 | 70 | - name: MSBuild (TvtAudioStretchFilter.sln) 71 | working-directory: TvtAudioStretchFilter_src 72 | run: msbuild TvtAudioStretchFilter.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" /p:OutDir="${{ matrix.platform }}" -m /p:PlatformToolset=v143 73 | 74 | - name: Prepare Artifacts 75 | shell: powershell 76 | run: | 77 | New-Item -Path Artifact -ItemType Directory 78 | New-Item -Path Artifact/Plugins -ItemType Directory 79 | Copy-Item -Path src/${{ matrix.platform }}/TvtPlay.tvtp -Destination Artifact/Plugins/ 80 | Copy-Item -Path BonDriver_Pipe_src/${{ matrix.platform }}/BonDriver_Pipe.dll -Destination Artifact/ 81 | Copy-Item -Path TvtAudioStretchFilter_src/${{ matrix.platform }}/TvtAudioStretchFilter.ax -Destination Artifact/Plugins/ 82 | 83 | - name: Upload Artifact 84 | uses: actions/upload-artifact@v4 85 | with: 86 | name: TvtPlay_${{ matrix.platform }} 87 | if-no-files-found: error 88 | path: Artifact/ 89 | 90 | - name: Set Job Outputs 91 | id: output 92 | uses: actions/github-script@v7 93 | with: 94 | script: | 95 | core.setOutput("artifact", "TvtPlay_${{ matrix.platform }}") 96 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 97 | 98 | release: 99 | needs: build 100 | uses: ./.github/workflows/release.yml 101 | with: 102 | artifact-name: '${{ needs.build.outputs.artifact }}' 103 | permissions: 104 | contents: write 105 | 106 | deploy: 107 | needs: build 108 | if: needs.build.outputs.should_deploy == 'true' 109 | uses: ./.github/workflows/deploy.yml 110 | with: 111 | artifact-name: '${{ needs.build.outputs.artifact }}' 112 | secrets: inherit 113 | permissions: {} 114 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TVTest-builder 2 | 3 | TVTest 関連のプロジェクトを GitHub Actions 上でビルドします。 4 | 5 | ## ビルド詳細 6 | 7 | - それぞれのソースリポジトリの `master` / `main` ブランチまたはこれに準ずるブランチをビルドします。 8 | - `Release|x64` 構成またはこれに準ずる構成でビルドを行います。 9 | - 一部のプロジェクトでは `Release|Win32` 構成でもビルドを行います。 10 | - 一部のプロジェクトでは、拡張 CPU 命令セット (AVX, AVX2, AVX512) で最適化したビルドを行います。 11 | - 一部のプロジェクトでは、パッチを当ててビルドを行います。パッチは [こちら](https://github.com/SlashNephy/TVTest-builder/tree/master/Patch) から確認できます。 12 | - ビルドの構成やプロジェクトを追加したい場合は、Issue か PR でお知らせください! 13 | 14 | ## 成果物 15 | 16 | - このリポジトリでは、毎日ビルドを行っています。ビルドの成果物は、[リリース](https://github.com/SlashNephy/TVTest-builder/releases) から入手できるほか、[Actions](https://github.com/SlashNephy/TVTest-builder/actions) の実行結果 (ログインが必要) から取得することができます。 17 | - このリポジトリでビルドされた成果物の動作には、[Visual C++ 再頒布可能パッケージ (2022)](https://docs.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022) のインストールが必要です。(静的リンクされていません。) 18 | 19 | ## 対象リポジトリ 20 | 21 | | リポジトリ | 説明 | Workflow | 22 | |---|---|---| 23 | | [DBCTRADO/TVTest](https://github.com/DBCTRADO/TVTest) | TVTest 本体 | [![TVTest](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTest.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTest.yml) | 24 | | [DBCTRADO/TVTestVideoDecoder](https://github.com/DBCTRADO/TVTestVideoDecoder) | TVTest 付属の MPEG-TS デコーダ | [![TVTestVideoDecoder](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTestVideoDecoder.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTestVideoDecoder.yml) | 25 | | [xtne6f/NicoJK](https://github.com/xtne6f/NicoJK) | 実況プラグイン | [![NicoJK](https://github.com/SlashNephy/TVTest-builder/actions/workflows/NicoJK.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/NicoJK.yml) | 26 | | [xtne6f/TVCaptionMod2](https://github.com/xtne6f/TVCaptionMod2) | 字幕表示プラグイン | [![TVCaptionMod2](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVCaptionMod2.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVCaptionMod2.yml) | 27 | | [xtne6f/TvtPlay](https://github.com/xtne6f/TvtPlay) | ファイル再生プラグイン | [![TvtPlay](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvtPlay.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvtPlay.yml) | 28 | | [noriokun4649/TVTComment](https://github.com/noriokun4649/TVTComment) | 実況プラグイン | [![TVTComment](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTComment.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTComment.yml) | 29 | | [xqq/BonDriver_EPGStation](https://github.com/xqq/BonDriver_EPGStation) | EPGStation 向け BonDriver | [![BonDriver_EPGStation](https://github.com/SlashNephy/TVTest-builder/actions/workflows/BonDriver_EPGStation.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/BonDriver_EPGStation.yml) | 30 | | [logue/CasProcessor](https://github.com/logue/CasProcessor) | CAS 処理 プラグイン
BonDriver_EPGStation を使用する際は不要 | [![CasProcessor](https://github.com/SlashNephy/TVTest-builder/actions/workflows/CasProcessor.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/CasProcessor.yml) | 31 | | [logue/TvCas](https://github.com/logue/TvCas) | CasProcessor プラグイン
BonDriver_EPGStation を使用する際は不要 | [![TvCas](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvCas.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvCas.yml) | 32 | | [xtne6f/TTRec](https://github.com/xtne6f/TTRec) | 予約拡張プラグイン | [![TTRec](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TTRec.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TTRec.yml) | 33 | | [SlashNephy/MuteInact](https://github.com/SlashNephy/MuteInact) | ミュートプラグイン | [![MuteInact](https://github.com/SlashNephy/TVTest-builder/actions/workflows/MuteInact.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/MuteInact.yml) | 34 | | [nns779/px4_drv](https://github.com/nns779/px4_drv) | 非公式 PLEX ドライバ (winusb) | [![px4_drv](https://github.com/SlashNephy/TVTest-builder/actions/workflows/px4_drv.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/px4_drv.yml) | 35 | | [xtne6f/TVCaption3](https://github.com/xtne6f/TVCaption3) | 字幕表示プラグイン | [![TVCaption3](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVCaption3.yml/badge.svg)](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVCaption3.yml) | 36 | 37 | 以下のプロジェクトは各リポジトリを参照してください。 38 | 39 | | リポジトリ | 説明 | Workflow | 40 | |---|---|---| 41 | | [SlashNephy/TvTestRPC](https://github.com/SlashNephy/TvTestRPC) | Discord RPC プラグイン | [![TvTestRPC](https://github.com/SlashNephy/TvTestRPC/actions/workflows/latest.yml/badge.svg)](https://github.com/SlashNephy/TvTestRPC/actions/workflows/latest.yml) | 42 | | [SlashNephy/TVTestAnnictRecorder](https://github.com/SlashNephy/TVTestAnnictRecorder) | Annict 記録プラグイン | [![TVTestAnnictRecorder](https://github.com/SlashNephy/TVTestAnnictRecorder/actions/workflows/build-cpp.yml/badge.svg)](https://github.com/SlashNephy/TVTestAnnictRecorder/actions/workflows/build-cpp.yml) | 43 | -------------------------------------------------------------------------------- /.github/workflows/TVTest.yml: -------------------------------------------------------------------------------- 1 | name: TVTest 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TVTest.yml 7 | 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | runs-on: windows-latest 13 | 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | include: 18 | - platform: x64 19 | cpu: Normal 20 | cpu_property: NotSet 21 | deploy: false 22 | - platform: x64 23 | cpu: AVX 24 | cpu_property: AdvancedVectorExtensions 25 | deploy: false 26 | - platform: x64 27 | cpu: AVX2 28 | cpu_property: AdvancedVectorExtensions2 29 | deploy: true 30 | - platform: x64 31 | cpu: AVX512 32 | cpu_property: AdvancedVectorExtensions512 33 | deploy: false 34 | # Win32 35 | 36 | outputs: 37 | artifact: ${{ steps.output.outputs.artifact }} 38 | should_deploy: ${{ steps.output.outputs.should_deploy }} 39 | 40 | steps: 41 | - name: Checkout Repository 42 | uses: actions/checkout@v4 43 | with: 44 | repository: DBCTRADO/TVTest 45 | submodules: recursive 46 | 47 | # - name: Update Submodules 48 | # shell: powershell 49 | # run: | 50 | # git submodule update --recursive --remote 51 | 52 | # $path = "src\LibISDB\Thirdparty\fdk-aac\libSBRdec\src\sbr_crc.cpp" 53 | # if (!(Test-Path $path)) { 54 | # New-Item $path 55 | # } 56 | 57 | - name: Checkout Repository 58 | uses: actions/checkout@v4 59 | with: 60 | path: TVTest-builder 61 | 62 | - name: Apply Patches 63 | shell: powershell 64 | run: | 65 | foreach ($item in Get-ChildItem TVTest-builder\Patch\TVTest.*.patch) 66 | { 67 | git apply $item.FullName 68 | } 69 | 70 | - name: Enable Enhanced Instruction Set 71 | if: matrix.cpu_property != 'NotSet' 72 | shell: powershell 73 | run: | 74 | $data = Get-Content src/TVTest.vcxproj | % { $_ -replace 'NotSet','${{ matrix.cpu_property }}' } 75 | $data | Out-File src/TVTest.vcxproj 76 | 77 | - name: Setup MSBuild 78 | uses: microsoft/setup-msbuild@v2 79 | with: 80 | msbuild-architecture: x64 81 | 82 | - name: Setup Windows SDK 83 | uses: GuillaumeFalourd/setup-windows10-sdk-action@v2.4 84 | with: 85 | sdk-version: 22621 86 | 87 | - name: MSBuild (LibISDB.sln) 88 | working-directory: src\LibISDB\Projects 89 | run: msbuild LibISDB.sln /p:Configuration="Release_MD" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 90 | 91 | - name: MSBuild (TVTest.sln) 92 | working-directory: src 93 | run: msbuild TVTest.sln /p:Configuration="Release_MD" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 94 | 95 | - name: MSBuild (Samples.sln) 96 | working-directory: sdk/Samples 97 | run: msbuild Samples.sln /p:Configuration="Release" /p:Platform="${{ matrix.platform }}" -m /p:PlatformToolset=v143 98 | 99 | - name: Prepare Artifacts 100 | shell: powershell 101 | run: | 102 | New-Item -Path Artifact/Plugins -ItemType Directory 103 | Copy-Item -Path src/${{ matrix.platform }}/Release_MD/TVTest.chm -Destination Artifact/ 104 | Copy-Item -Path src/${{ matrix.platform }}/Release_MD/TVTest.exe -Destination Artifact/ 105 | Copy-Item -Path src/${{ matrix.platform }}/Release_MD/TVTest_Image.dll -Destination Artifact/ 106 | Copy-Item -Path sdk/Samples/${{ matrix.platform }}/Release/*.tvtp -Destination Artifact/Plugins/ 107 | Copy-Item -Path sdk/Samples/${{ matrix.platform }}/Release/*.dll -Destination Artifact/Plugins/ 108 | 109 | - name: Prepare Assets (x64) 110 | if: matrix.platform == 'x64' 111 | shell: powershell 112 | run: Get-ChildItem -Path data/Data_x64 | Move-Item -Destination data/ -Force 113 | - name: Prepare Assets 114 | shell: powershell 115 | run: Copy-Item -Path data/* -Destination Artifact/ -Recurse 116 | 117 | - name: Upload Artifact 118 | uses: actions/upload-artifact@v4 119 | with: 120 | name: TVTest_${{ matrix.platform }}_${{ matrix.cpu }} 121 | if-no-files-found: error 122 | path: Artifact/ 123 | 124 | - name: Set Job Outputs 125 | id: output 126 | uses: actions/github-script@v7 127 | with: 128 | script: | 129 | core.setOutput("artifact", "TVTest_${{ matrix.platform }}_${{ matrix.cpu }}") 130 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 131 | 132 | release: 133 | needs: build 134 | uses: ./.github/workflows/release.yml 135 | with: 136 | artifact-name: '${{ needs.build.outputs.artifact }}' 137 | permissions: 138 | contents: write 139 | 140 | deploy: 141 | needs: build 142 | if: needs.build.outputs.should_deploy == 'true' 143 | uses: ./.github/workflows/deploy.yml 144 | with: 145 | artifact-name: '${{ needs.build.outputs.artifact }}' 146 | secrets: inherit 147 | permissions: {} 148 | -------------------------------------------------------------------------------- /.github/workflows/TVTComment.yml: -------------------------------------------------------------------------------- 1 | name: TVTComment 2 | 3 | on: 4 | push: 5 | paths: 6 | - .github/workflows/TVTComment.yml 7 | - Patch/TvtComment.*.patch 8 | 9 | workflow_dispatch: 10 | 11 | jobs: 12 | build-exe: 13 | runs-on: windows-latest 14 | 15 | steps: 16 | - name: Checkout Repository (TVTComment) 17 | uses: actions/checkout@v4 18 | with: 19 | repository: noriokun4649/TVTComment 20 | submodules: recursive 21 | 22 | # - name: Update Submodules 23 | # run: git submodule update --recursive --remote 24 | 25 | - name: Checkout Repository (TVTComment-txt) 26 | uses: actions/checkout@v4 27 | with: 28 | repository: SlashNephy/TVTComment-txt 29 | path: TVTComment-txt 30 | 31 | - name: Checkout Repository 32 | uses: actions/checkout@v4 33 | with: 34 | path: TVTest-builder 35 | 36 | - name: Apply Patches 37 | shell: powershell 38 | run: | 39 | foreach ($item in Get-ChildItem TVTest-builder\Patch\TvtComment.*.patch) 40 | { 41 | Write-Output $item.FullName 42 | git apply $item.FullName 43 | } 44 | 45 | - name: Setup dotnet 46 | uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1 47 | with: 48 | dotnet-version: 8.0.x 49 | 50 | - name: Replace Annict:ClientId and Annict:ClientSecret 51 | shell: powershell 52 | run: | 53 | $data=Get-Content TVTComment/ViewModels/SettingsWindowViewModel.cs | % { $_ -replace 'secrets\["Annict:ClientId"\]','"${{ secrets.ANNICT_CLIENT_ID }}"' } 54 | $data | Out-File TVTComment/ViewModels/SettingsWindowViewModel.cs 55 | $data=Get-Content TVTComment/ViewModels/SettingsWindowViewModel.cs | % { $_ -replace 'secrets\["Annict:ClientSecret"\]','"${{ secrets.ANNICT_CLIENT_SECRET }}"' } 56 | $data | Out-File TVTComment/ViewModels/SettingsWindowViewModel.cs 57 | 58 | - name: Install CoreTweet 59 | run: nuget sources add -name CoreTweetSource -source ${{ github.workspace }}\CoreTweetNuget 60 | 61 | - name: Build 62 | run: | 63 | dotnet publish -m ` 64 | --configuration Release ` 65 | /p:PublishProfile="TVTComment/Properties/PublishProfiles/ReleaseProfile.pubxml" ` 66 | /p:CopyLocalLockFileAssemblies=true 67 | 68 | - name: Prepare Artifact 69 | shell: powershell 70 | run: | 71 | New-Item -Path Artifact/Plugins/TvtComment -ItemType Directory 72 | Copy-Item -Path TVTComment/bin/Release/net8.0-windows/publish/* -Destination Artifact/Plugins/TvtComment/ -Recurse 73 | Copy-Item -Path TVTComment/Data/* -Destination Artifact/Plugins/TvtComment/ -Recurse 74 | Copy-Item -Path TVTComment-txt/*.txt -Destination Artifact/Plugins/TvtComment/ -Recurse 75 | 76 | - name: Upload Artifact 77 | uses: actions/upload-artifact@v4 78 | with: 79 | name: TvtComment_exe 80 | if-no-files-found: error 81 | path: Artifact/ 82 | 83 | deploy-exe: 84 | needs: build-exe 85 | uses: ./.github/workflows/deploy.yml 86 | with: 87 | artifact-name: 'TvtComment_exe' 88 | secrets: inherit 89 | permissions: {} 90 | 91 | build-tvtp: 92 | runs-on: windows-latest 93 | 94 | strategy: 95 | fail-fast: false 96 | matrix: 97 | include: 98 | - platform: x64 99 | deploy: true 100 | - platform: Win32 101 | deploy: false 102 | 103 | outputs: 104 | artifact: ${{ steps.output.outputs.artifact }} 105 | should_deploy: ${{ steps.output.outputs.should_deploy }} 106 | 107 | steps: 108 | - name: Checkout Repository (TVTComment) 109 | uses: actions/checkout@v4 110 | with: 111 | repository: noriokun4649/TVTComment 112 | submodules: recursive 113 | 114 | - name: Setup MSBuild 115 | uses: microsoft/setup-msbuild@v2 116 | 117 | - name: Build 118 | run: | 119 | msbuild Viewer/Viewer.vcxproj ` 120 | -m ` 121 | /p:Configuration="Release" ` 122 | /p:Platform="${{ matrix.platform }}" ` 123 | /p:CodePage=932 ` 124 | /p:PlatformToolset=v143 125 | 126 | - name: Prepare Artifacts 127 | shell: powershell 128 | run: | 129 | New-Item -Path Artifact/Plugins -ItemType Directory 130 | Copy-Item -Path Viewer/${{ matrix.platform }}/Release/TvtComment.tvtp -Destination Artifact/Plugins/ 131 | 132 | - name: Upload Artifacts 133 | uses: actions/upload-artifact@v4 134 | with: 135 | name: TvtComment_tvtp_${{ matrix.platform }} 136 | if-no-files-found: error 137 | path: Artifact/ 138 | 139 | - name: Set Job Outputs 140 | id: output 141 | uses: actions/github-script@v7 142 | with: 143 | script: | 144 | core.setOutput("artifact", "TvtComment_tvtp_${{ matrix.platform }}") 145 | core.setOutput("should_deploy", "${{ matrix.deploy }}") 146 | 147 | deploy-tvtp: 148 | needs: build-tvtp 149 | if: needs.build-tvtp.outputs.should_deploy == 'true' 150 | uses: ./.github/workflows/deploy.yml 151 | with: 152 | artifact-name: '${{ needs.build-tvtp.outputs.artifact }}' 153 | secrets: inherit 154 | permissions: {} 155 | 156 | release: 157 | runs-on: ubuntu-latest 158 | 159 | if: startsWith(github.ref, 'refs/tags/') 160 | needs: 161 | - build-exe 162 | - build-tvtp 163 | 164 | steps: 165 | - name: Download Artifacts 166 | uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 167 | with: 168 | path: Artifacts/ 169 | 170 | - name: Upload Release 171 | uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 172 | with: 173 | files: Artifacts/*.zip 174 | env: 175 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 176 | --------------------------------------------------------------------------------