Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
@ 2025-07-21 16:37 Timo Rothenpieler
  2025-07-21 17:02 ` Leo Izen
  2025-07-21 22:17 ` Michael Niedermayer
  0 siblings, 2 replies; 10+ messages in thread
From: Timo Rothenpieler @ 2025-07-21 16:37 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Timo Rothenpieler

It runs basic fate with no special dependencies enabled on x86_64 and
aarch64.
---
 .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
 .gitignore                  |  1 +
 2 files changed, 40 insertions(+)
 create mode 100644 .forgejo/workflows/test.yml

diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
new file mode 100644
index 0000000000..f9e032b78c
--- /dev/null
+++ b/.forgejo/workflows/test.yml
@@ -0,0 +1,39 @@
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+
+jobs:
+  run_fate:
+    strategy:
+      fail-fast: false
+      matrix:
+        runner: [linux-amd64,linux-aarch64]
+    runs-on: ${{ matrix.runner }}
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Configure
+        run: ./configure
+      - name: Build
+        run: make -j$(nproc)
+      - name: Restore Cached Fate-Suite
+        uses: actions/cache/restore@v4
+        with:
+          path: fate-suite
+          key: fate-suite
+          restore-keys: |
+            fate-suite-
+      - name: Sync Fate-Suite
+        id: fate
+        run: |
+          make fate-rsync SAMPLES=$PWD/fate-suite
+          echo "hash=$(find fate-suite -type f | sha256sum | cut -d' ' -f1)" >> $GITHUB_OUTPUT
+      - name: Cache Fate-Suite
+        uses: actions/cache/save@v4
+        with:
+          path: fate-suite
+          key: fate-suite-${{ steps.fate.outputs.hash }}
+      - name: Run Fate
+        run: make fate SAMPLES=$PWD/fate-suite -j$(nproc)
diff --git a/.gitignore b/.gitignore
index 59c89da5e0..4aa49c52c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,4 @@
 /libavcodec/vulkan/*.c
 /libavfilter/vulkan/*.c
 /.*/
+!/.forgejo/
-- 
2.49.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 16:37 [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI Timo Rothenpieler
@ 2025-07-21 17:02 ` Leo Izen
  2025-07-21 17:44   ` Timo Rothenpieler
  2025-07-21 22:17 ` Michael Niedermayer
  1 sibling, 1 reply; 10+ messages in thread
From: Leo Izen @ 2025-07-21 17:02 UTC (permalink / raw)
  To: ffmpeg-devel

On 7/21/25 12:37, Timo Rothenpieler wrote:
> It runs basic fate with no special dependencies enabled on x86_64 and
> aarch64.
> ---
>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>   .gitignore                  |  1 +
>   2 files changed, 40 insertions(+)
>   create mode 100644 .forgejo/workflows/test.yml
> 
> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
> new file mode 100644
> index 0000000000..f9e032b78c
> --- /dev/null
> +++ b/.forgejo/workflows/test.yml
> @@ -0,0 +1,39 @@
> +on:
> +  push:
> +    branches:
> +      - master
> +  pull_request:
> +
> +jobs:
> +  run_fate:
> +    strategy:
> +      fail-fast: false
> +      matrix:
> +        runner: [linux-amd64,linux-aarch64]
> +    runs-on: ${{ matrix.runner }}
> +    steps:
> +      - name: Checkout
> +        uses: actions/checkout@v4
> +      - name: Configure
> +        run: ./configure
> +      - name: Build
> +        run: make -j$(nproc)
> +      - name: Restore Cached Fate-Suite
> +        uses: actions/cache/restore@v4
> +        with:
> +          path: fate-suite
> +          key: fate-suite
> +          restore-keys: |
> +            fate-suite-
> +      - name: Sync Fate-Suite
> +        id: fate
> +        run: |
> +          make fate-rsync SAMPLES=$PWD/fate-suite
> +          echo "hash=$(find fate-suite -type f | sha256sum | cut -d' ' -f1)" >> $GITHUB_OUTPUT

$GITHUB_OUTPUT is probably a copypaste issue.

> +      - name: Cache Fate-Suite
> +        uses: actions/cache/save@v4
> +        with:
> +          path: fate-suite
> +          key: fate-suite-${{ steps.fate.outputs.hash }}
> +      - name: Run Fate
> +        run: make fate SAMPLES=$PWD/fate-suite -j$(nproc)
> diff --git a/.gitignore b/.gitignore
> index 59c89da5e0..4aa49c52c7 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -45,3 +45,4 @@
>   /libavcodec/vulkan/*.c
>   /libavfilter/vulkan/*.c
>   /.*/
> +!/.forgejo/

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 17:02 ` Leo Izen
@ 2025-07-21 17:44   ` Timo Rothenpieler
  2025-07-21 19:24     ` Timo Rothenpieler
  0 siblings, 1 reply; 10+ messages in thread
From: Timo Rothenpieler @ 2025-07-21 17:44 UTC (permalink / raw)
  To: ffmpeg-devel

On 7/21/2025 7:02 PM, Leo Izen wrote:
> On 7/21/25 12:37, Timo Rothenpieler wrote:
>> It runs basic fate with no special dependencies enabled on x86_64 and
>> aarch64.
>> ---
>>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>>   .gitignore                  |  1 +
>>   2 files changed, 40 insertions(+)
>>   create mode 100644 .forgejo/workflows/test.yml
>>
>> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
>> new file mode 100644
>> index 0000000000..f9e032b78c
>> --- /dev/null
>> +++ b/.forgejo/workflows/test.yml
>> @@ -0,0 +1,39 @@
>> +on:
>> +  push:
>> +    branches:
>> +      - master
>> +  pull_request:
>> +
>> +jobs:
>> +  run_fate:
>> +    strategy:
>> +      fail-fast: false
>> +      matrix:
>> +        runner: [linux-amd64,linux-aarch64]
>> +    runs-on: ${{ matrix.runner }}
>> +    steps:
>> +      - name: Checkout
>> +        uses: actions/checkout@v4
>> +      - name: Configure
>> +        run: ./configure
>> +      - name: Build
>> +        run: make -j$(nproc)
>> +      - name: Restore Cached Fate-Suite
>> +        uses: actions/cache/restore@v4
>> +        with:
>> +          path: fate-suite
>> +          key: fate-suite
>> +          restore-keys: |
>> +            fate-suite-
>> +      - name: Sync Fate-Suite
>> +        id: fate
>> +        run: |
>> +          make fate-rsync SAMPLES=$PWD/fate-suite
>> +          echo "hash=$(find fate-suite -type f | sha256sum | cut -d' 
>> ' -f1)" >> $GITHUB_OUTPUT
> 
> $GITHUB_OUTPUT is probably a copypaste issue.

Negative, Forgejo Runners are fully compatible with GHA, so this is how 
you do it.

>> +      - name: Cache Fate-Suite
>> +        uses: actions/cache/save@v4
>> +        with:
>> +          path: fate-suite
>> +          key: fate-suite-${{ steps.fate.outputs.hash }}
>> +      - name: Run Fate
>> +        run: make fate SAMPLES=$PWD/fate-suite -j$(nproc)
>> diff --git a/.gitignore b/.gitignore
>> index 59c89da5e0..4aa49c52c7 100644
>> --- a/.gitignore
>> +++ b/.gitignore
>> @@ -45,3 +45,4 @@
>>   /libavcodec/vulkan/*.c
>>   /libavfilter/vulkan/*.c
>>   /.*/
>> +!/.forgejo/
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 17:44   ` Timo Rothenpieler
@ 2025-07-21 19:24     ` Timo Rothenpieler
  0 siblings, 0 replies; 10+ messages in thread
From: Timo Rothenpieler @ 2025-07-21 19:24 UTC (permalink / raw)
  To: ffmpeg-devel


On 7/21/2025 7:44 PM, Timo Rothenpieler wrote:
> On 7/21/2025 7:02 PM, Leo Izen wrote:
>> On 7/21/25 12:37, Timo Rothenpieler wrote:
>>> It runs basic fate with no special dependencies enabled on x86_64 and
>>> aarch64.
>>> ---
>>>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>>>   .gitignore                  |  1 +
>>>   2 files changed, 40 insertions(+)
>>>   create mode 100644 .forgejo/workflows/test.yml
>>>
>>> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
>>> new file mode 100644
>>> index 0000000000..f9e032b78c
>>> --- /dev/null
>>> +++ b/.forgejo/workflows/test.yml
>>> @@ -0,0 +1,39 @@
>>> +on:
>>> +  push:
>>> +    branches:
>>> +      - master
>>> +  pull_request:
>>> +
>>> +jobs:
>>> +  run_fate:
>>> +    strategy:
>>> +      fail-fast: false
>>> +      matrix:
>>> +        runner: [linux-amd64,linux-aarch64]
>>> +    runs-on: ${{ matrix.runner }}
>>> +    steps:
>>> +      - name: Checkout
>>> +        uses: actions/checkout@v4
>>> +      - name: Configure
>>> +        run: ./configure
>>> +      - name: Build
>>> +        run: make -j$(nproc)
>>> +      - name: Restore Cached Fate-Suite
>>> +        uses: actions/cache/restore@v4
>>> +        with:
>>> +          path: fate-suite
>>> +          key: fate-suite
>>> +          restore-keys: |
>>> +            fate-suite-
>>> +      - name: Sync Fate-Suite
>>> +        id: fate
>>> +        run: |
>>> +          make fate-rsync SAMPLES=$PWD/fate-suite
>>> +          echo "hash=$(find fate-suite -type f | sha256sum | cut -d' 
>>> ' -f1)" >> $GITHUB_OUTPUT
>>
>> $GITHUB_OUTPUT is probably a copypaste issue.
> 
> Negative, Forgejo Runners are fully compatible with GHA, so this is how 
> you do it.

By now, both FORGEJO_OUTPUT and GITHUB_OUTPUT work, so I think renaming 
this makes it look a bit nicer. Will amend locally.

>>> +      - name: Cache Fate-Suite
>>> +        uses: actions/cache/save@v4
>>> +        with:
>>> +          path: fate-suite
>>> +          key: fate-suite-${{ steps.fate.outputs.hash }}
>>> +      - name: Run Fate
>>> +        run: make fate SAMPLES=$PWD/fate-suite -j$(nproc)
>>> diff --git a/.gitignore b/.gitignore
>>> index 59c89da5e0..4aa49c52c7 100644
>>> --- a/.gitignore
>>> +++ b/.gitignore
>>> @@ -45,3 +45,4 @@
>>>   /libavcodec/vulkan/*.c
>>>   /libavfilter/vulkan/*.c
>>>   /.*/
>>> +!/.forgejo/
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 16:37 [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI Timo Rothenpieler
  2025-07-21 17:02 ` Leo Izen
@ 2025-07-21 22:17 ` Michael Niedermayer
  2025-07-21 22:40   ` Scott Theisen
  2025-07-21 23:00   ` Timo Rothenpieler
  1 sibling, 2 replies; 10+ messages in thread
From: Michael Niedermayer @ 2025-07-21 22:17 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1510 bytes --]

On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
> It runs basic fate with no special dependencies enabled on x86_64 and
> aarch64.
> ---
>  .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>  .gitignore                  |  1 +
>  2 files changed, 40 insertions(+)
>  create mode 100644 .forgejo/workflows/test.yml
> 
> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
> new file mode 100644
> index 0000000000..f9e032b78c
> --- /dev/null
> +++ b/.forgejo/workflows/test.yml
> @@ -0,0 +1,39 @@
> +on:
> +  push:
> +    branches:
> +      - master
> +  pull_request:
> +
> +jobs:
> +  run_fate:
> +    strategy:
> +      fail-fast: false
> +      matrix:
> +        runner: [linux-amd64,linux-aarch64]
> +    runs-on: ${{ matrix.runner }}
> +    steps:
> +      - name: Checkout
> +        uses: actions/checkout@v4
> +      - name: Configure

> +        run: ./configure

If you want to maximize coverage and maximize speed:
dash ./configure
--enable-gpl
(--enable-nonfree)
--enable-version3
--cc='ccache gcc' (or clang)
--assert-level=2
--tempprefix=somebasepaththatcanbeusedforcreatingtemporaryfiles
--enable-whatever-is-insalled

no more comments from me, patch can be applied once everyone is happy

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 22:17 ` Michael Niedermayer
@ 2025-07-21 22:40   ` Scott Theisen
  2025-07-21 23:27     ` Kacper Michajlow
  2025-07-21 23:00   ` Timo Rothenpieler
  1 sibling, 1 reply; 10+ messages in thread
From: Scott Theisen @ 2025-07-21 22:40 UTC (permalink / raw)
  To: ffmpeg-devel

On 2025/07/21 18:17, Michael Niedermayer wrote:
> On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
>> It runs basic fate with no special dependencies enabled on x86_64 and
>> aarch64.
>> ---
>>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>>   .gitignore                  |  1 +
>>   2 files changed, 40 insertions(+)
>>   create mode 100644 .forgejo/workflows/test.yml
>>
>> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
>> new file mode 100644
>> index 0000000000..f9e032b78c
>> --- /dev/null
>> +++ b/.forgejo/workflows/test.yml
>> @@ -0,0 +1,39 @@
>> +on:
>> +  push:
>> +    branches:
>> +      - master
>> +  pull_request:
>> +
>> +jobs:
>> +  run_fate:
>> +    strategy:
>> +      fail-fast: false
>> +      matrix:
>> +        runner: [linux-amd64,linux-aarch64]
>> +    runs-on: ${{ matrix.runner }}
>> +    steps:
>> +      - name: Checkout
>> +        uses: actions/checkout@v4
>> +      - name: Configure
>> +        run: ./configure
> If you want to maximize coverage and maximize speed:
> dash ./configure
> --enable-gpl
> (--enable-nonfree)
> --enable-version3
> --cc='ccache gcc' (or clang)

ccache would also need a set of actions/cache steps and if the caches 
are scoped as GitHub's are, probably also another workflow to clean up 
the caches when a pull request is closed.

> --assert-level=2
> --tempprefix=somebasepaththatcanbeusedforcreatingtemporaryfiles
> --enable-whatever-is-insalled
>
> no more comments from me, patch can be applied once everyone is happy
>
> thx
>
> [...]
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 22:17 ` Michael Niedermayer
  2025-07-21 22:40   ` Scott Theisen
@ 2025-07-21 23:00   ` Timo Rothenpieler
  2025-07-22 17:09     ` Michael Niedermayer
  1 sibling, 1 reply; 10+ messages in thread
From: Timo Rothenpieler @ 2025-07-21 23:00 UTC (permalink / raw)
  To: ffmpeg-devel

On 7/22/2025 12:17 AM, Michael Niedermayer wrote:
> On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
>> It runs basic fate with no special dependencies enabled on x86_64 and
>> aarch64.
>> ---
>>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
>>   .gitignore                  |  1 +
>>   2 files changed, 40 insertions(+)
>>   create mode 100644 .forgejo/workflows/test.yml
>>
>> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
>> new file mode 100644
>> index 0000000000..f9e032b78c
>> --- /dev/null
>> +++ b/.forgejo/workflows/test.yml
>> @@ -0,0 +1,39 @@
>> +on:
>> +  push:
>> +    branches:
>> +      - master
>> +  pull_request:
>> +
>> +jobs:
>> +  run_fate:
>> +    strategy:
>> +      fail-fast: false
>> +      matrix:
>> +        runner: [linux-amd64,linux-aarch64]
>> +    runs-on: ${{ matrix.runner }}
>> +    steps:
>> +      - name: Checkout
>> +        uses: actions/checkout@v4
>> +      - name: Configure
> 
>> +        run: ./configure
> 
> If you want to maximize coverage and maximize speed:
> dash ./configure
> --enable-gpl
> (--enable-nonfree)

The builds aren't ever distributed, so --enable-nonfree is a good call.

> --enable-version3
> --cc='ccache gcc' (or clang)

I don't fully trust ccache to not cause spurious issues.
Gentoo stopped accepting bug reports if ccache was involved and it 
wasn't reproduced without it.
The builds are speedy enough that a full build each time doesn't seem 
too horrible.

I'd rather just add more runners if we ever run into capacity problems, 
which I honestly don't see happening anytime soon.

> --assert-level=2
> --tempprefix=somebasepaththatcanbeusedforcreatingtemporaryfiles

If I understand this right, all it does is use a fixed prefix in /tmp 
instead of just calling mktemp?
I don't immediately see the benefit of that, speed wise.

> --enable-whatever-is-insalled

Yeah, I intend to use the images with tons of deps which I already 
build, either directly or by spinning off some FFmpeg specific fork of them.
And then we need to decide on what makes sense to enable on CI.

> no more comments from me, patch can be applied once everyone is happy
> 
> thx
> 
> [...]
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 22:40   ` Scott Theisen
@ 2025-07-21 23:27     ` Kacper Michajlow
  0 siblings, 0 replies; 10+ messages in thread
From: Kacper Michajlow @ 2025-07-21 23:27 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Tue, 22 Jul 2025 at 00:40, Scott Theisen <scott.the.elm@gmail.com> wrote:

> On 2025/07/21 18:17, Michael Niedermayer wrote:
> > On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
> >> It runs basic fate with no special dependencies enabled on x86_64 and
> >> aarch64.
> >> ---
> >>   .forgejo/workflows/test.yml | 39 +++++++++++++++++++++++++++++++++++++
> >>   .gitignore                  |  1 +
> >>   2 files changed, 40 insertions(+)
> >>   create mode 100644 .forgejo/workflows/test.yml
> >>
> >> diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
> >> new file mode 100644
> >> index 0000000000..f9e032b78c
> >> --- /dev/null
> >> +++ b/.forgejo/workflows/test.yml
> >> @@ -0,0 +1,39 @@
> >> +on:
> >> +  push:
> >> +    branches:
> >> +      - master
> >> +  pull_request:
> >> +
> >> +jobs:
> >> +  run_fate:
> >> +    strategy:
> >> +      fail-fast: false
> >> +      matrix:
> >> +        runner: [linux-amd64,linux-aarch64]
> >> +    runs-on: ${{ matrix.runner }}
> >> +    steps:
> >> +      - name: Checkout
> >> +        uses: actions/checkout@v4
> >> +      - name: Configure
> >> +        run: ./configure
> > If you want to maximize coverage and maximize speed:
> > dash ./configure
> > --enable-gpl
> > (--enable-nonfree)
> > --enable-version3
> > --cc='ccache gcc' (or clang)
>
> ccache would also need a set of actions/cache steps and if the caches
> are scoped as GitHub's are, probably also another workflow to clean up
> the caches when a pull request is closed


I can help with that, I have a pretty neat setup for ccache on github.
Should be transferable here. Although I agree with Timo, ccache is a risk
if we start having some miscompilations or stale objects. It generally
works, but I wouldn't use it unless really needed. For slow/less important
configs it can be enabled, but I wouldn't enable it for all builds.

- Kacper
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-21 23:00   ` Timo Rothenpieler
@ 2025-07-22 17:09     ` Michael Niedermayer
  2025-07-22 18:07       ` Timo Rothenpieler
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Niedermayer @ 2025-07-22 17:09 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1811 bytes --]

Hi

On Tue, Jul 22, 2025 at 01:00:49AM +0200, Timo Rothenpieler wrote:
> On 7/22/2025 12:17 AM, Michael Niedermayer wrote:
> > On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
[...]
> > --enable-version3
> > --cc='ccache gcc' (or clang)
> 
> I don't fully trust ccache to not cause spurious issues.

locally i think ive never seen an issue and i use it 100% of teh time
for all builds.

in fate clients, i have seen cases where ccache needed to be cleared
I dont want to guess the cause as its just a guess, but clients
run out of disk space, they run out of memory which doesnt happen
to me locally nearly that often


> Gentoo stopped accepting bug reports if ccache was involved and it wasn't
> reproduced without it.

> The builds are speedy enough that a full build each time doesn't seem too
> horrible.

Being able to tell the developer code is ok/not ok quicker can be valuable
but sure, if you prefer having it disabled for now

> 
> I'd rather just add more runners if we ever run into capacity problems,
> which I honestly don't see happening anytime soon.
> 
> > --assert-level=2
> > --tempprefix=somebasepaththatcanbeusedforcreatingtemporaryfiles
> 
> If I understand this right, all it does is use a fixed prefix in /tmp
> instead of just calling mktemp?
> I don't immediately see the benefit of that, speed wise.

its for ccache. Because without that you have random temporary files
and so they are not cached.

my configure here takes 6sec (with --tempprefix and ccache and lots of --enables)
without tempprefix its 10sec

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI
  2025-07-22 17:09     ` Michael Niedermayer
@ 2025-07-22 18:07       ` Timo Rothenpieler
  0 siblings, 0 replies; 10+ messages in thread
From: Timo Rothenpieler @ 2025-07-22 18:07 UTC (permalink / raw)
  To: ffmpeg-devel

On 7/22/2025 7:09 PM, Michael Niedermayer wrote:
> Hi
> 
> On Tue, Jul 22, 2025 at 01:00:49AM +0200, Timo Rothenpieler wrote:
>> On 7/22/2025 12:17 AM, Michael Niedermayer wrote:
>>> On Mon, Jul 21, 2025 at 06:37:06PM +0200, Timo Rothenpieler wrote:
> [...]
>>> --enable-version3
>>> --cc='ccache gcc' (or clang)
>>
>> I don't fully trust ccache to not cause spurious issues.
> 
> locally i think ive never seen an issue and i use it 100% of teh time
> for all builds.
> 
> in fate clients, i have seen cases where ccache needed to be cleared
> I dont want to guess the cause as its just a guess, but clients
> run out of disk space, they run out of memory which doesnt happen
> to me locally nearly that often
> 
> 
>> Gentoo stopped accepting bug reports if ccache was involved and it wasn't
>> reproduced without it.
> 
>> The builds are speedy enough that a full build each time doesn't seem too
>> horrible.
> 
> Being able to tell the developer code is ok/not ok quicker can be valuable
> but sure, if you prefer having it disabled for now
> 
>>
>> I'd rather just add more runners if we ever run into capacity problems,
>> which I honestly don't see happening anytime soon.
>>
>>> --assert-level=2
>>> --tempprefix=somebasepaththatcanbeusedforcreatingtemporaryfiles
>>
>> If I understand this right, all it does is use a fixed prefix in /tmp
>> instead of just calling mktemp?
>> I don't immediately see the benefit of that, speed wise.
> 
> its for ccache. Because without that you have random temporary files
> and so they are not cached.
> 
> my configure here takes 6sec (with --tempprefix and ccache and lots of --enables)
> without tempprefix its 10sec

If we do run into capacity problems, we can always look into that.

I've applied this initial rudimentary version for now.
It's just a very baseline CI setup for now anyway, and will be expanded on.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-07-22 18:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-21 16:37 [FFmpeg-devel] [PATCH] forgejo/workflows: add initial rudimentary CI Timo Rothenpieler
2025-07-21 17:02 ` Leo Izen
2025-07-21 17:44   ` Timo Rothenpieler
2025-07-21 19:24     ` Timo Rothenpieler
2025-07-21 22:17 ` Michael Niedermayer
2025-07-21 22:40   ` Scott Theisen
2025-07-21 23:27     ` Kacper Michajlow
2025-07-21 23:00   ` Timo Rothenpieler
2025-07-22 17:09     ` Michael Niedermayer
2025-07-22 18:07       ` Timo Rothenpieler

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git