actions: vendor sources with submodules for releases

This commit is contained in:
Emil J. Tywoniak 2024-10-17 00:11:10 +02:00
parent 61ed9b6263
commit d29499a10f
3 changed files with 38 additions and 1 deletions

33
.github/workflows/source-vendor.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Create source archive with vendored dependencies
on: [push, workflow_dispatch]
jobs:
vendor-sources:
runs-on: ubuntu-latest
steps:
- name: Checkout repository with submodules
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Create clean tarball
run: |
git archive --format=tar HEAD -o yosys-src-vendored.tar
git submodule foreach '
git archive --format=tar --prefix="${sm_path}/" HEAD --output=${toplevel}/vendor-${name}.tar
'
# 2008 bug https://lists.gnu.org/archive/html/bug-tar/2008-08/msg00002.html
for file in vendor-*.tar; do
tar --concatenate --file=yosys-src-vendored.tar "$file"
done
gzip yosys-src-vendored.tar
- name: Store tarball artifact
uses: actions/upload-artifact@v4
with:
name: vendored-sources
path: yosys-src-vendored.tar.gz
retention-days: 1

3
.gitmodules vendored
View File

@ -1,6 +1,7 @@
[submodule "abc"] [submodule "abc"]
path = abc path = abc
url = https://github.com/YosysHQ/abc url = https://github.com/YosysHQ/abc
[submodule "libs/cxxopts"] # Don't use paths as names to avoid git archive problems
[submodule "cxxopts"]
path = libs/cxxopts path = libs/cxxopts
url = https://github.com/jarro2783/cxxopts url = https://github.com/jarro2783/cxxopts

View File

@ -33,6 +33,9 @@ Yosys is free software licensed under the ISC license (a GPL
compatible license that is similar in terms to the MIT license compatible license that is similar in terms to the MIT license
or the 2-clause BSD license). or the 2-clause BSD license).
Third-party software distributed alongside this software
is licensed under compatible licenses.
Please refer to `abc` and `libs` subdirectories for their license terms.
Web Site and Other Resources Web Site and Other Resources
============================ ============================