├── 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 本体 | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTest.yml) |
24 | | [DBCTRADO/TVTestVideoDecoder](https://github.com/DBCTRADO/TVTestVideoDecoder) | TVTest 付属の MPEG-TS デコーダ | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTestVideoDecoder.yml) |
25 | | [xtne6f/NicoJK](https://github.com/xtne6f/NicoJK) | 実況プラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/NicoJK.yml) |
26 | | [xtne6f/TVCaptionMod2](https://github.com/xtne6f/TVCaptionMod2) | 字幕表示プラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVCaptionMod2.yml) |
27 | | [xtne6f/TvtPlay](https://github.com/xtne6f/TvtPlay) | ファイル再生プラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvtPlay.yml) |
28 | | [noriokun4649/TVTComment](https://github.com/noriokun4649/TVTComment) | 実況プラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TVTComment.yml) |
29 | | [xqq/BonDriver_EPGStation](https://github.com/xqq/BonDriver_EPGStation) | EPGStation 向け BonDriver | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/BonDriver_EPGStation.yml) |
30 | | [logue/CasProcessor](https://github.com/logue/CasProcessor) | CAS 処理 プラグイン
BonDriver_EPGStation を使用する際は不要 | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/CasProcessor.yml) |
31 | | [logue/TvCas](https://github.com/logue/TvCas) | CasProcessor プラグイン
BonDriver_EPGStation を使用する際は不要 | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TvCas.yml) |
32 | | [xtne6f/TTRec](https://github.com/xtne6f/TTRec) | 予約拡張プラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/TTRec.yml) |
33 | | [SlashNephy/MuteInact](https://github.com/SlashNephy/MuteInact) | ミュートプラグイン | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/MuteInact.yml) |
34 | | [nns779/px4_drv](https://github.com/nns779/px4_drv) | 非公式 PLEX ドライバ (winusb) | [](https://github.com/SlashNephy/TVTest-builder/actions/workflows/px4_drv.yml) |
35 | | [xtne6f/TVCaption3](https://github.com/xtne6f/TVCaption3) | 字幕表示プラグイン | [](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 プラグイン | [](https://github.com/SlashNephy/TvTestRPC/actions/workflows/latest.yml) |
42 | | [SlashNephy/TVTestAnnictRecorder](https://github.com/SlashNephy/TVTestAnnictRecorder) | Annict 記録プラグイン | [](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 |
--------------------------------------------------------------------------------