Skip to content

Commit 99159e7

Browse files
authored
Merge branch 'YosysHQ:main' into master
2 parents d563d39 + 30cb72a commit 99159e7

File tree

329 files changed

+7796
-3714
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

329 files changed

+7796
-3714
lines changed

.github/actions/setup-build-env/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ runs:
88
shell: bash
99
run: |
1010
sudo apt-get update
11-
sudo apt-get install gperf build-essential bison flex libfl-dev libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot pkg-config python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev libbz2-dev
11+
sudo apt-get install gperf build-essential bison flex libfl-dev libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot pkg-config python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev libbz2-dev libgtest-dev
1212
1313
- name: Install macOS Dependencies
1414
if: runner.os == 'macOS'

.github/workflows/extra-builds.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
name: Test extra build flows
22

3-
on: [push, pull_request]
3+
on:
4+
# always test main
5+
push:
6+
branches:
7+
- main
8+
# test PRs
9+
pull_request:
10+
# allow triggering tests, ignores skip check
11+
workflow_dispatch:
412

513
jobs:
614
pre_job:
@@ -11,11 +19,11 @@ jobs:
1119
- id: skip_check
1220
uses: fkirc/skip-duplicate-actions@v5
1321
with:
22+
# don't run on documentation changes
1423
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
1524
# cancel previous builds if a new commit is pushed
16-
cancel_others: 'true'
17-
# only run on push *or* pull_request, not both
18-
concurrent_skipping: 'same_content_newer'
25+
# but never cancel main
26+
cancel_others: ${{ github.ref != 'refs/heads/main' }}
1927

2028
vs-prep:
2129
name: Prepare Visual Studio build

.github/workflows/prepare-docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
# docs builds are needed for anything on main, any tagged versions, and any tag
2727
# or branch starting with docs-preview
2828
needs: check_docs_rebuild
29-
if: ${{ needs.check_docs_rebuild.outputs.should_skip != 'true' }}
29+
if: ${{ needs.check_docs_rebuild.outputs.should_skip != 'true' && github.repository == 'YosysHQ/Yosys' }}
3030
runs-on: [self-hosted, linux, x64, fast]
3131
steps:
3232
- name: Checkout Yosys
@@ -48,7 +48,7 @@ jobs:
4848
echo "ENABLE_VERIFIC_YOSYSHQ_EXTENSIONS := 1" >> Makefile.conf
4949
echo "ENABLE_CCACHE := 1" >> Makefile.conf
5050
echo "ENABLE_HELP_SOURCE := 1" >> Makefile.conf
51-
make -j$procs ENABLE_LTO=1
51+
make -j$procs
5252
5353
- name: Prepare docs
5454
shell: bash

.github/workflows/test-build.yml

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
name: Build and run tests
22

3-
on: [push, pull_request]
3+
on:
4+
# always test main
5+
push:
6+
branches:
7+
- main
8+
# test PRs
9+
pull_request:
10+
# allow triggering tests, ignores skip check
11+
workflow_dispatch:
412

513
jobs:
614
pre_job:
@@ -11,11 +19,12 @@ jobs:
1119
- id: skip_check
1220
uses: fkirc/skip-duplicate-actions@v5
1321
with:
22+
# don't run on documentation changes
1423
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
1524
# cancel previous builds if a new commit is pushed
16-
cancel_others: 'true'
17-
# only run on push *or* pull_request, not both
18-
concurrent_skipping: 'same_content_newer'
25+
# but never cancel main
26+
cancel_others: ${{ github.ref != 'refs/heads/main' }}
27+
1928
pre_docs_job:
2029
runs-on: ubuntu-latest
2130
outputs:
@@ -24,23 +33,23 @@ jobs:
2433
- id: skip_check
2534
uses: fkirc/skip-duplicate-actions@v5
2635
with:
36+
# don't run on readme changes
2737
paths_ignore: '["**/README.md"]'
2838
# cancel previous builds if a new commit is pushed
29-
cancel_others: 'true'
30-
# only run on push *or* pull_request, not both
31-
concurrent_skipping: 'same_content_newer'
39+
# but never cancel main
40+
cancel_others: ${{ github.ref != 'refs/heads/main' }}
3241

3342
build-yosys:
3443
name: Reusable build
3544
runs-on: ${{ matrix.os }}
45+
# pre_job is a subset of pre_docs_job, so we can always build for pre_docs_job
3646
needs: pre_docs_job
3747
if: needs.pre_docs_job.outputs.should_skip != 'true'
3848
env:
3949
CC: clang
4050
strategy:
4151
matrix:
4252
os: [ubuntu-latest, macos-latest]
43-
sanitizer: [undefined, address]
4453
fail-fast: false
4554
steps:
4655
- name: Checkout Yosys
@@ -58,8 +67,7 @@ jobs:
5867
mkdir build
5968
cd build
6069
make -f ../Makefile config-$CC
61-
echo 'SANITIZER = ${{ matrix.sanitizer }}' >> Makefile.conf
62-
make -f ../Makefile -j$procs ENABLE_LTO=1
70+
make -f ../Makefile -j$procs
6371
6472
- name: Log yosys-config output
6573
run: |
@@ -74,7 +82,7 @@ jobs:
7482
- name: Store build artifact
7583
uses: actions/upload-artifact@v4
7684
with:
77-
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
85+
name: build-${{ matrix.os }}
7886
path: build.tar
7987
retention-days: 1
8088

@@ -85,12 +93,9 @@ jobs:
8593
if: needs.pre_job.outputs.should_skip != 'true'
8694
env:
8795
CC: clang
88-
ASAN_OPTIONS: halt_on_error=1
89-
UBSAN_OPTIONS: halt_on_error=1
9096
strategy:
9197
matrix:
9298
os: [ubuntu-latest, macos-latest]
93-
sanitizer: [undefined, address]
9499
fail-fast: false
95100
steps:
96101
- name: Checkout Yosys
@@ -102,11 +107,12 @@ jobs:
102107
uses: ./.github/actions/setup-build-env
103108

104109
- name: Get iverilog
110+
id: get-iverilog
105111
shell: bash
106112
run: |
107113
git clone https://github.com/steveicarus/iverilog.git
108114
cd iverilog
109-
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_ENV
115+
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
110116
111117
- name: Get vcd2fst
112118
shell: bash
@@ -123,7 +129,13 @@ jobs:
123129
uses: actions/cache@v4
124130
with:
125131
path: .local/
126-
key: ${{ matrix.os }}-${IVERILOG_GIT}
132+
key: ${{ matrix.os }}-${{ steps.get-iverilog.outputs.IVERILOG_GIT }}
133+
134+
- name: iverilog macOS deps
135+
if: steps.cache-iverilog.outputs.cache-hit != 'true' && runner.os == 'macOS'
136+
shell: bash
137+
run: |
138+
brew install autoconf
127139
128140
- name: Build iverilog
129141
if: steps.cache-iverilog.outputs.cache-hit != 'true'
@@ -139,7 +151,7 @@ jobs:
139151
- name: Download build artifact
140152
uses: actions/download-artifact@v4
141153
with:
142-
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
154+
name: build-${{ matrix.os }}
143155

144156
- name: Uncompress build
145157
shell: bash
@@ -171,7 +183,6 @@ jobs:
171183
strategy:
172184
matrix:
173185
os: [ubuntu-latest]
174-
sanitizer: [undefined]
175186
steps:
176187
- name: Checkout Yosys
177188
uses: actions/checkout@v4
@@ -184,7 +195,7 @@ jobs:
184195
- name: Download build artifact
185196
uses: actions/download-artifact@v4
186197
with:
187-
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
198+
name: build-${{ matrix.os }}
188199

189200
- name: Uncompress build
190201
shell: bash
@@ -209,7 +220,6 @@ jobs:
209220
strategy:
210221
matrix:
211222
os: [ubuntu-latest]
212-
sanitizer: [undefined, address]
213223
fail-fast: false
214224
steps:
215225
- name: Checkout Yosys
@@ -223,7 +233,7 @@ jobs:
223233
- name: Download build artifact
224234
uses: actions/download-artifact@v4
225235
with:
226-
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
236+
name: build-${{ matrix.os }}
227237

228238
- name: Uncompress build
229239
shell: bash
@@ -243,7 +253,7 @@ jobs:
243253
name: Try build docs
244254
runs-on: [self-hosted, linux, x64, fast]
245255
needs: [pre_docs_job]
246-
if: needs.pre_docs_job.outputs.should_skip != 'true'
256+
if: ${{ needs.pre_docs_job.outputs.should_skip != 'true' && github.repository == 'YosysHQ/Yosys' }}
247257
strategy:
248258
matrix:
249259
docs-target: [html, latexpdf]

.github/workflows/test-compile.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
name: Compiler testing
22

3-
on: [push, pull_request]
3+
on:
4+
# always test main
5+
push:
6+
branches:
7+
- main
8+
# test PRs
9+
pull_request:
10+
# allow triggering tests, ignores skip check
11+
workflow_dispatch:
412

513
jobs:
614
pre_job:
@@ -11,11 +19,11 @@ jobs:
1119
- id: skip_check
1220
uses: fkirc/skip-duplicate-actions@v5
1321
with:
22+
# don't run on documentation changes
1423
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
1524
# cancel previous builds if a new commit is pushed
16-
cancel_others: 'true'
17-
# only run on push *or* pull_request, not both
18-
concurrent_skipping: 'same_content_newer'
25+
# but never cancel main
26+
cancel_others: ${{ github.ref != 'refs/heads/main' }}
1927

2028
test-compile:
2129
runs-on: ${{ matrix.os }}
@@ -34,7 +42,7 @@ jobs:
3442
- 'gcc-10'
3543
# newest, make sure to update maximum standard step to match
3644
- 'clang-19'
37-
- 'gcc-13'
45+
- 'gcc-14'
3846
include:
3947
# macOS x86
4048
- os: macos-13
@@ -73,7 +81,7 @@ jobs:
7381
7482
# maximum standard, only on newest compilers
7583
- name: Build C++20
76-
if: ${{ matrix.compiler == 'clang-19' || matrix.compiler == 'gcc-13' }}
84+
if: ${{ matrix.compiler == 'clang-19' || matrix.compiler == 'gcc-14' }}
7785
shell: bash
7886
run: |
7987
make config-$CC_SHORT

0 commit comments

Comments
 (0)