Re: Cleaning salsa build cache before a new build
Hi Vincent!
(dropped salsa-admin@, this is not related to any salsa.debian.org infra)
> While packaging a new upstream version of one of my packages (taktuk),
> I switched from getting hand-made source tarball (with "make dist" from autotools)
> by the upstream developper to a tag in the git repo (for better tracability).
> Of course, I initially messed up and pushed to salsa a new upstream version
> (in the pristine-tar branch) still coming from the hand-made tarball.
>
> Since, I fixed all of this. Now, the git on salsa (and the uploaded package) is
> correctly using the tarball coming from git. It is also now correctly registered
> in the pristine-tar of the git repo.
>
> My problem is that salsa-ci is still using the hand-made tarball. In the build log,
> I can see:
> [...]
> $ if find . -maxdepth 3 -wholename "*/debian/source/format" -exec cat {} \; | grep -q '3.0 (gitarchive)'
> gbp:info: All Orig tarballs 'taktuk_3.7.8.orig.tar.gz' found at '/builds/debian/taktuk/build/'
> gbp:info: Creating taktuk_3.7.8.orig.tar.gz from 'upstream/3.7.8'
> gbp:info: Disabling 'cleaner' hook
> gbp:info: Exporting 'HEAD' to '/builds/debian/taktuk/build/taktuk-tmp'
> gbp:info: Moving '/builds/debian/taktuk/build/taktuk-tmp' to '/builds/debian/taktuk/build/taktuk-3.7.8'
> gbp:info: Performing the build
> $ ls -lh ${BUILD_DIR}
> total 608K
> drwxrwxr-x 9 root root 4.0K Sep 30 08:47 taktuk-3.7.8
> -rw-r--r-- 1 root root 603K Sep 30 08:50 taktuk_3.7.8.orig.tar.gz
> [...]
>
>
> The hand-made tarball is about 600k, the git tarball is about 150K
> (no autotool auto-generated files), so salsa-ci is clearly using the
> bad (previously used) tarball.
>
> Is there a way to remove the (cached on disk) tarball on salsa, so
> that the correct tarball would be taken from pristine-tar git branch?
The GitLab CI cache is used by ccache to avoid rebuilding the same
files over and over. The cache has nothing to do with the tarball.
I checked out your repository, https://salsa.debian.org/debian/taktuk
and I don't see any commits related to "hand-made tarball", so the
issue you describe is not specific to Salsa CI but in general anyone
trying to build your package sources you mention are not visible in
the git branches:
± g-log
* 8556c2c Fix filename with uscan 10 hours ago (HEAD -> master,
origin/master, origin/HEAD)
* e3a7e1f Improve packaging with lintian 10 hours ago
* 179f621 Import new version for git tags 10 hours ago
* bbdf5da Update upstream source from tag 'upstream/3.7.8' 10 hours ago
|\
| * a8e451b New upstream version 3.7.8 10 hours ago (origin/upstream, upstream)
| * 4046e14 New upstream version 3.7.7 8 years ago (tag: upstream/3.7.7)
* | 79095f7 fix upstream url, switch to watch file v5 with gitlab 10 hours ago
* | 450fdf5 Applying NMU patch for time64_t transition 11 hours ago
* | ccee36b Empty commit to trigger a pipeline 1 year, 5 months ago
It seems that the "hand-made tarball" you mentioned only exists on
your own computer?
If you want to exclude files from the upstream tarball, the best way
to do it is to add an Exclude-Files section to your debian/copyright
file. After that any time running `gbp import-orig --uscan` or just
`uscan` will fetch and repackage and commit the correct upstream
sources. You can see a documented example of this in
https://salsa.debian.org/go-team/packages/golang-github-lorenzosaino-go-sysctl/-/merge_requests/1
If you share a list of what files you want to have excluded, I can
send you an MR with the debian/copyright, debian/watch and
debian/gbp.conf correctly configured so you only even need to run `gbp
import-orig --uscan` and everything will automatically be correct
every time.
Reply to: