threads / discuss / 59052

Github actions failing

Subject: Github actions failing

## tl;dr

7 messages between Jan 8, 2023 and Jan 9, 2023.

replies: 6people: 3as markdown or json

NSENGIYUMVA WILBERFORCE· Jan 8, 2023, 10:02 UTC · lore

Hi, So I wanted to send the next patch after review. All the tests pass when I run them on my PC but I get something like the following error when I test from my git branch

Show 17 quoted lines
>
> + git checkout -b signed
> 2283 Switched to a new branch 'signed'
> 2284 + echo 1
> 2285 + git add file
> 2286 + test_tick
> 2287 + test -z set
> 2288 + test_tick=1112912113
> 2289 + GIT_COMMITTER_DATE='1112912113 -0700'
> 2290 + GIT_AUTHOR_DATE='1112912113 -0700'
> 2291 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> 2292 + git commit -S -m initial
> 2293 error: cannot run gpg: No such file or directory
> 2294 error: gpg failed to sign the data
> 2295 fatal: failed to write commit object
> 2296 error: last command exited with $?=128
> 2297 not ok 338 - test bare signature atom
What could be wrong?
NSENGIYUMVA WILBERFORCE· Jan 8, 2023, 10:07 UTC · re: NSENGIYUMVA WILBERFORCE · lore

Re: Github actions failing

Hi, So I wanted to send the next patch after review. All the tests pass when I run them on my PC but I get something like the following error when I test from my git branch

Show 19 quoted lines
>
> + git checkout -b signed
> 2283 Switched to a new branch 'signed'
> 2284 + echo 1
> 2285 + git add file
> 2286 + test_tick
> 2287 + test -z set
> 2288 + test_tick=1112912113
> 2289 + GIT_COMMITTER_DATE='1112912113 -0700'
> 2290 + GIT_AUTHOR_DATE='1112912113 -0700'
> 2291 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> 2292 + git commit -S -m initial
> 2293 error: cannot run gpg: No such file or directory
> 2294 error: gpg failed to sign the data
> 2295 fatal: failed to write commit object
> 2296 error: last command exited with $?=128
> 2297 not ok 338 - test bare signature atom
>
> What could be wrong?

This is the branch: https://github.com/nsengiyumva-wilberforce/git/commits/signature10

On Sun, Jan 8, 2023 at 1:02 PM NSENGIYUMVA WILBERFORCE <nsengiyumvawilberforce@gmail.com> wrote:

Show 23 quoted lines
>
> Hi,
> So I wanted to send the next patch after review.  All the tests pass
> when I run them on my PC but I get something like the following error
> when I test from my git branch
> >
> > + git checkout -b signed
> > 2283 Switched to a new branch 'signed'
> > 2284 + echo 1
> > 2285 + git add file
> > 2286 + test_tick
> > 2287 + test -z set
> > 2288 + test_tick=1112912113
> > 2289 + GIT_COMMITTER_DATE='1112912113 -0700'
> > 2290 + GIT_AUTHOR_DATE='1112912113 -0700'
> > 2291 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> > 2292 + git commit -S -m initial
> > 2293 error: cannot run gpg: No such file or directory
> > 2294 error: gpg failed to sign the data
> > 2295 fatal: failed to write commit object
> > 2296 error: last command exited with $?=128
> > 2297 not ok 338 - test bare signature atom
> What could be wrong?
Christian Couder· Jan 8, 2023, 18:17 UTC · re: NSENGIYUMVA WILBERFORCE · lore

Re: Github actions failing

Hi,

On Sun, Jan 8, 2023 at 11:07 AM NSENGIYUMVA WILBERFORCE <nsengiyumvawilberforce@gmail.com> wrote:

Show 23 quoted lines
>
> Hi,
> So I wanted to send the next patch after review.  All the tests pass
> when I run them on my PC but I get something like the following error
> when I test from my git branch
> >
> > + git checkout -b signed
> > 2283 Switched to a new branch 'signed'
> > 2284 + echo 1
> > 2285 + git add file
> > 2286 + test_tick
> > 2287 + test -z set
> > 2288 + test_tick=1112912113
> > 2289 + GIT_COMMITTER_DATE='1112912113 -0700'
> > 2290 + GIT_AUTHOR_DATE='1112912113 -0700'
> > 2291 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> > 2292 + git commit -S -m initial
> > 2293 error: cannot run gpg: No such file or directory
> > 2294 error: gpg failed to sign the data
> > 2295 fatal: failed to write commit object
> > 2296 error: last command exited with $?=128
> > 2297 not ok 338 - test bare signature atom
> What could be wrong?
There is the following in the above log:
> 2293 error: cannot run gpg: No such file or directory
so maybe gpg isn't installed on the test system.
It looks like the test you added doesn't have the "GPG" prerequisite. Compare:
-> test_expect_success 'test bare signature atom'
with:
-> test_expect_success GPG 'show good signature with custom format'
There is a "GPG" prerequisite in the latter but not the former.
NSENGIYUMVA WILBERFORCE· Jan 9, 2023, 04:40 UTC · re: Christian Couder · lore

Re: Github actions failing

Show 16 quoted lines
> There is the following in the above log:
>
> > 2293 error: cannot run gpg: No such file or directory
>
> so maybe gpg isn't installed on the test system.
>
> It looks like the test you added doesn't have the "GPG" prerequisite. Compare:
>
> -> test_expect_success 'test bare signature atom'
>
> with:
>
> -> test_expect_success GPG 'show good signature with custom format'
>
> There is a "GPG" prerequisite in the latter but not the former.
>

Thanks, I missed the GPG flag. Now I get the following after forcing the push. I have been looking for the problem but I can't figure it out. I will be glad for any help

Show 45 quoted lines
>
> git checkout -b signed &&
> 1840 echo 1 >file && git add file &&
> 1841 test_tick && git commit -S -m initial &&
> 1842 git verify-commit signed 2>out &&
> 1843 head -3 out >expected &&
> 1844 tail -1 out >>expected &&
> 1845 echo >>expected &&
> 1846 git for-each-ref refs/heads/signed --format="%(signature)" >actual &&
> 1847 test_cmp actual expected
> 1848
> 1849 + git checkout -b signed
> 1850 Switched to a new branch 'signed'
> 1851 + echo 1
> 1852 + git add file
> 1853 + test_tick
> 1854 + test -z set
> 1855 + test_tick=1112912113
> 1856 + GIT_COMMITTER_DATE=1112912113 -0700
> 1857 + GIT_AUTHOR_DATE=1112912113 -0700
> 1858 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> 1859 + git commit -S -m initial
> 1860 [signed 4dc4b90] initial
> 1861 Author: A U Thor <author@example.com>
> 1862 1 file changed, 1 insertion(+)
> 1863 create mode 100644 file
> 1864 + git verify-commit signed
> 1865 + head -3 out
> 1866 + tail -1 out
> 1867 + echo
> 1868 + git for-each-ref refs/heads/signed --format=%(signature)
> 1869 + test_cmp actual expected
> 1870 + test 2 -ne 2
> 1871 + eval diff -u "$@"
> 1872 + diff -u actual expected
> 1873 --- actual 2023-01-08 19:40:42.169214115 +0000
> 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000
> 1875 @@ -1,4 +1,5 @@
> 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC
> 1877 gpg: using DSA key 13B6F51ECDDE430D
> 1878 +gpg: checking the trustdb
> 1879 gpg: Good signature from "C O Mitter <committer@example.com>"
> 1880
> 1881 error: last command exited with $?=1
> 1882 not ok 338 - test bare signature atom

On Sun, Jan 8, 2023 at 1:17 PM Christian Couder <christian.couder@gmail.com> wrote:

Show 44 quoted lines
>
> Hi,
>
> On Sun, Jan 8, 2023 at 11:07 AM NSENGIYUMVA WILBERFORCE
> <nsengiyumvawilberforce@gmail.com> wrote:
> >
> > Hi,
> > So I wanted to send the next patch after review.  All the tests pass
> > when I run them on my PC but I get something like the following error
> > when I test from my git branch
> > >
> > > + git checkout -b signed
> > > 2283 Switched to a new branch 'signed'
> > > 2284 + echo 1
> > > 2285 + git add file
> > > 2286 + test_tick
> > > 2287 + test -z set
> > > 2288 + test_tick=1112912113
> > > 2289 + GIT_COMMITTER_DATE='1112912113 -0700'
> > > 2290 + GIT_AUTHOR_DATE='1112912113 -0700'
> > > 2291 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> > > 2292 + git commit -S -m initial
> > > 2293 error: cannot run gpg: No such file or directory
> > > 2294 error: gpg failed to sign the data
> > > 2295 fatal: failed to write commit object
> > > 2296 error: last command exited with $?=128
> > > 2297 not ok 338 - test bare signature atom
> > What could be wrong?
>
> There is the following in the above log:
>
> > 2293 error: cannot run gpg: No such file or directory
>
> so maybe gpg isn't installed on the test system.
>
> It looks like the test you added doesn't have the "GPG" prerequisite. Compare:
>
> -> test_expect_success 'test bare signature atom'
>
> with:
>
> -> test_expect_success GPG 'show good signature with custom format'
>
> There is a "GPG" prerequisite in the latter but not the former.
Christian Couder· Jan 9, 2023, 09:22 UTC · re: NSENGIYUMVA WILBERFORCE · lore

Re: Github actions failing

On Mon, Jan 9, 2023 at 5:40 AM NSENGIYUMVA WILBERFORCE <nsengiyumvawilberforce@gmail.com> wrote:

Show 35 quoted lines
> Thanks, I missed the GPG flag. Now I get the following after forcing
> the push. I have been looking for the problem but I can't figure it
> out. I will be glad for any help
> >
> > git checkout -b signed &&
> > 1840 echo 1 >file && git add file &&
> > 1841 test_tick && git commit -S -m initial &&
> > 1842 git verify-commit signed 2>out &&
> > 1843 head -3 out >expected &&
> > 1844 tail -1 out >>expected &&
> > 1845 echo >>expected &&
> > 1846 git for-each-ref refs/heads/signed --format="%(signature)" >actual &&
> > 1847 test_cmp actual expected
> > 1848
> > 1849 + git checkout -b signed
> > 1850 Switched to a new branch 'signed'
> > 1851 + echo 1
> > 1852 + git add file
> > 1853 + test_tick
> > 1854 + test -z set
> > 1855 + test_tick=1112912113
> > 1856 + GIT_COMMITTER_DATE=1112912113 -0700
> > 1857 + GIT_AUTHOR_DATE=1112912113 -0700
> > 1858 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> > 1859 + git commit -S -m initial
> > 1860 [signed 4dc4b90] initial
> > 1861 Author: A U Thor <author@example.com>
> > 1862 1 file changed, 1 insertion(+)
> > 1863 create mode 100644 file
> > 1864 + git verify-commit signed
> > 1865 + head -3 out
> > 1866 + tail -1 out
> > 1867 + echo
> > 1868 + git for-each-ref refs/heads/signed --format=%(signature)
> > 1869 + test_cmp actual expected

I think in general we prefer "test_cmp expected actual" over "test_cmp actual expected". I think it's easier to understand what happened with the former.

Also most of the tests in t6300 are like "test_cmp expected actual":

$ grep -c 'test_cmp expect' t6300-for-each-ref.sh 67 $ grep -c 'test_cmp actual' t6300-for-each-ref.sh 1

Show 9 quoted lines
> > 1870 + test 2 -ne 2
> > 1871 + eval diff -u "$@"
> > 1872 + diff -u actual expected
> > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000
> > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000
> > 1875 @@ -1,4 +1,5 @@
> > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC
> > 1877 gpg: using DSA key 13B6F51ECDDE430D
> > 1878 +gpg: checking the trustdb

The + before "gpg" means that the above line is in what we expect, but not in what we actually get.

I think the reason might be that gpg's output could have changed between different versions of gpg and it might just not be possible and wise to rely on the exact output it emits.

In both t7510-signed-commit.sh t7528-signed-commit-ssh.sh for example, we don't test the '%GG' format, and that might be the reason why.

So I see the following possibilities to overcome this issue:
  - just drop the test you added for the %(signature) format
  - find a way to require a specific version of gpg for that test
(unfortunately I don't think our test framework allows that, so you
would have to add custom code to the test, and this is likely to
bitrot as time passes and the required gpg version becomes unused)
  - find a way to make the test independent of the gpg version (this
might bitrot too as new gpg versions might further change their
output)
> > 1879 gpg: Good signature from "C O Mitter <committer@example.com>"
> > 1880
> > 1881 error: last command exited with $?=1
> > 1882 not ok 338 - test bare signature atom
Andreas Schwab· Jan 9, 2023, 10:10 UTC · re: Christian Couder · lore

Re: Github actions failing

On Jan 09 2023, Christian Couder wrote:
Show 16 quoted lines
>> > 1870 + test 2 -ne 2
>> > 1871 + eval diff -u "$@"
>> > 1872 + diff -u actual expected
>> > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000
>> > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000
>> > 1875 @@ -1,4 +1,5 @@
>> > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC
>> > 1877 gpg: using DSA key 13B6F51ECDDE430D
>> > 1878 +gpg: checking the trustdb
>
> The + before "gpg" means that the above line is in what we expect, but
> not in what we actually get.
>
> I think the reason might be that gpg's output could have changed
> between different versions of gpg and it might just not be possible
> and wise to rely on the exact output it emits.

I think the "checking the trustdb" message is time-dependent, as the trustdb is normally updated only after some interval has passed. According to the gpg manpage, automatic trustdb checking can be suppressed with --no-auto-check-trustdb.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."
NSENGIYUMVA WILBERFORCE· Jan 9, 2023, 13:01 UTC · re: Christian Couder · lore

Re: Github actions failing

Show 41 quoted lines
> I think in general we prefer "test_cmp expected actual" over "test_cmp
> actual expected". I think it's easier to understand what happened with
> the former.
>
> Also most of the tests in t6300 are like "test_cmp expected actual":
>
> $ grep -c 'test_cmp expect' t6300-for-each-ref.sh
> 67
> $ grep -c 'test_cmp actual' t6300-for-each-ref.sh
> 1
>
> > > 1870 + test 2 -ne 2
> > > 1871 + eval diff -u "$@"
> > > 1872 + diff -u actual expected
> > > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000
> > > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000
> > > 1875 @@ -1,4 +1,5 @@
> > > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC
> > > 1877 gpg: using DSA key 13B6F51ECDDE430D
> > > 1878 +gpg: checking the trustdb
>
> The + before "gpg" means that the above line is in what we expect, but
> not in what we actually get.
>
> I think the reason might be that gpg's output could have changed
> between different versions of gpg and it might just not be possible
> and wise to rely on the exact output it emits.
>
> In both t7510-signed-commit.sh t7528-signed-commit-ssh.sh for example,
> we don't test the '%GG' format, and that might be the reason why.
>
> So I see the following possibilities to overcome this issue:
>
>   - just drop the test you added for the %(signature) format
>   - find a way to require a specific version of gpg for that test
> (unfortunately I don't think our test framework allows that, so you
> would have to add custom code to the test, and this is likely to
> bitrot as time passes and the required gpg version becomes unused)
>   - find a way to make the test independent of the gpg version (this
> might bitrot too as new gpg versions might further change their
> output)
From your suggestions, I will consider removing it for now

On Mon, Jan 9, 2023 at 4:22 AM Christian Couder <christian.couder@gmail.com> wrote:

Show 86 quoted lines
>
> On Mon, Jan 9, 2023 at 5:40 AM NSENGIYUMVA WILBERFORCE
> <nsengiyumvawilberforce@gmail.com> wrote:
>
> > Thanks, I missed the GPG flag. Now I get the following after forcing
> > the push. I have been looking for the problem but I can't figure it
> > out. I will be glad for any help
> > >
> > > git checkout -b signed &&
> > > 1840 echo 1 >file && git add file &&
> > > 1841 test_tick && git commit -S -m initial &&
> > > 1842 git verify-commit signed 2>out &&
> > > 1843 head -3 out >expected &&
> > > 1844 tail -1 out >>expected &&
> > > 1845 echo >>expected &&
> > > 1846 git for-each-ref refs/heads/signed --format="%(signature)" >actual &&
> > > 1847 test_cmp actual expected
> > > 1848
> > > 1849 + git checkout -b signed
> > > 1850 Switched to a new branch 'signed'
> > > 1851 + echo 1
> > > 1852 + git add file
> > > 1853 + test_tick
> > > 1854 + test -z set
> > > 1855 + test_tick=1112912113
> > > 1856 + GIT_COMMITTER_DATE=1112912113 -0700
> > > 1857 + GIT_AUTHOR_DATE=1112912113 -0700
> > > 1858 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> > > 1859 + git commit -S -m initial
> > > 1860 [signed 4dc4b90] initial
> > > 1861 Author: A U Thor <author@example.com>
> > > 1862 1 file changed, 1 insertion(+)
> > > 1863 create mode 100644 file
> > > 1864 + git verify-commit signed
> > > 1865 + head -3 out
> > > 1866 + tail -1 out
> > > 1867 + echo
> > > 1868 + git for-each-ref refs/heads/signed --format=%(signature)
> > > 1869 + test_cmp actual expected
>
> I think in general we prefer "test_cmp expected actual" over "test_cmp
> actual expected". I think it's easier to understand what happened with
> the former.
>
> Also most of the tests in t6300 are like "test_cmp expected actual":
>
> $ grep -c 'test_cmp expect' t6300-for-each-ref.sh
> 67
> $ grep -c 'test_cmp actual' t6300-for-each-ref.sh
> 1
>
> > > 1870 + test 2 -ne 2
> > > 1871 + eval diff -u "$@"
> > > 1872 + diff -u actual expected
> > > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000
> > > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000
> > > 1875 @@ -1,4 +1,5 @@
> > > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC
> > > 1877 gpg: using DSA key 13B6F51ECDDE430D
> > > 1878 +gpg: checking the trustdb
>
> The + before "gpg" means that the above line is in what we expect, but
> not in what we actually get.
>
> I think the reason might be that gpg's output could have changed
> between different versions of gpg and it might just not be possible
> and wise to rely on the exact output it emits.
>
> In both t7510-signed-commit.sh t7528-signed-commit-ssh.sh for example,
> we don't test the '%GG' format, and that might be the reason why.
>
> So I see the following possibilities to overcome this issue:
>
>   - just drop the test you added for the %(signature) format
>   - find a way to require a specific version of gpg for that test
> (unfortunately I don't think our test framework allows that, so you
> would have to add custom code to the test, and this is likely to
> bitrot as time passes and the required gpg version becomes unused)
>   - find a way to make the test independent of the gpg version (this
> might bitrot too as new gpg versions might further change their
> output)
>
> > > 1879 gpg: Good signature from "C O Mitter <committer@example.com>"
> > > 1880
> > > 1881 error: last command exited with $?=1
> > > 1882 not ok 338 - test bare signature atom

← back to recent threads