mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-20 02:00:23 +00:00
Merge pull request #5299 from YosysHQ/revert-5280-krys/ci_changes
Revert "Workflow adjustments"
This commit is contained in:
commit
6b94376daf
5 changed files with 28 additions and 161 deletions
16
.github/workflows/extra-builds.yml
vendored
16
.github/workflows/extra-builds.yml
vendored
|
@ -1,14 +1,6 @@
|
||||||
name: Test extra build flows
|
name: Test extra build flows
|
||||||
|
|
||||||
on:
|
on: [push, pull_request]
|
||||||
# always test main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
# test PRs
|
|
||||||
pull_request:
|
|
||||||
# allow triggering tests, ignores skip check
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre_job:
|
pre_job:
|
||||||
|
@ -19,11 +11,11 @@ jobs:
|
||||||
- id: skip_check
|
- id: skip_check
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
with:
|
with:
|
||||||
# don't run on documentation changes
|
|
||||||
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
||||||
# cancel previous builds if a new commit is pushed
|
# cancel previous builds if a new commit is pushed
|
||||||
# but never cancel main
|
cancel_others: 'true'
|
||||||
cancel_others: ${{ github.ref != 'refs/heads/main' }}
|
# only run on push *or* pull_request, not both
|
||||||
|
concurrent_skipping: 'same_content_newer'
|
||||||
|
|
||||||
vs-prep:
|
vs-prep:
|
||||||
name: Prepare Visual Studio build
|
name: Prepare Visual Studio build
|
||||||
|
|
36
.github/workflows/test-build.yml
vendored
36
.github/workflows/test-build.yml
vendored
|
@ -1,14 +1,6 @@
|
||||||
name: Build and run tests
|
name: Build and run tests
|
||||||
|
|
||||||
on:
|
on: [push, pull_request]
|
||||||
# always test main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
# test PRs
|
|
||||||
pull_request:
|
|
||||||
# allow triggering tests, ignores skip check
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre_job:
|
pre_job:
|
||||||
|
@ -19,12 +11,11 @@ jobs:
|
||||||
- id: skip_check
|
- id: skip_check
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
with:
|
with:
|
||||||
# don't run on documentation changes
|
|
||||||
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
||||||
# cancel previous builds if a new commit is pushed
|
# cancel previous builds if a new commit is pushed
|
||||||
# but never cancel main
|
cancel_others: 'true'
|
||||||
cancel_others: ${{ github.ref != 'refs/heads/main' }}
|
# only run on push *or* pull_request, not both
|
||||||
|
concurrent_skipping: 'same_content_newer'
|
||||||
pre_docs_job:
|
pre_docs_job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
|
@ -33,16 +24,15 @@ jobs:
|
||||||
- id: skip_check
|
- id: skip_check
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
with:
|
with:
|
||||||
# don't run on readme changes
|
|
||||||
paths_ignore: '["**/README.md"]'
|
paths_ignore: '["**/README.md"]'
|
||||||
# cancel previous builds if a new commit is pushed
|
# cancel previous builds if a new commit is pushed
|
||||||
# but never cancel main
|
cancel_others: 'true'
|
||||||
cancel_others: ${{ github.ref != 'refs/heads/main' }}
|
# only run on push *or* pull_request, not both
|
||||||
|
concurrent_skipping: 'same_content_newer'
|
||||||
|
|
||||||
build-yosys:
|
build-yosys:
|
||||||
name: Reusable build
|
name: Reusable build
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
# pre_job is a subset of pre_docs_job, so we can always build for pre_docs_job
|
|
||||||
needs: pre_docs_job
|
needs: pre_docs_job
|
||||||
if: needs.pre_docs_job.outputs.should_skip != 'true'
|
if: needs.pre_docs_job.outputs.should_skip != 'true'
|
||||||
env:
|
env:
|
||||||
|
@ -50,6 +40,7 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, macos-latest]
|
||||||
|
sanitizer: [undefined, address]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Yosys
|
- name: Checkout Yosys
|
||||||
|
@ -67,6 +58,7 @@ jobs:
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
make -f ../Makefile config-$CC
|
make -f ../Makefile config-$CC
|
||||||
|
echo 'SANITIZER = ${{ matrix.sanitizer }}' >> Makefile.conf
|
||||||
make -f ../Makefile -j$procs ENABLE_LTO=1
|
make -f ../Makefile -j$procs ENABLE_LTO=1
|
||||||
|
|
||||||
- name: Log yosys-config output
|
- name: Log yosys-config output
|
||||||
|
@ -82,7 +74,7 @@ jobs:
|
||||||
- name: Store build artifact
|
- name: Store build artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: build-${{ matrix.os }}
|
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
|
||||||
path: build.tar
|
path: build.tar
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
|
@ -93,9 +85,12 @@ jobs:
|
||||||
if: needs.pre_job.outputs.should_skip != 'true'
|
if: needs.pre_job.outputs.should_skip != 'true'
|
||||||
env:
|
env:
|
||||||
CC: clang
|
CC: clang
|
||||||
|
ASAN_OPTIONS: halt_on_error=1
|
||||||
|
UBSAN_OPTIONS: halt_on_error=1
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, macos-latest]
|
||||||
|
sanitizer: [undefined, address]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Yosys
|
- name: Checkout Yosys
|
||||||
|
@ -144,7 +139,7 @@ jobs:
|
||||||
- name: Download build artifact
|
- name: Download build artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: build-${{ matrix.os }}
|
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
|
||||||
|
|
||||||
- name: Uncompress build
|
- name: Uncompress build
|
||||||
shell: bash
|
shell: bash
|
||||||
|
@ -214,6 +209,7 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest]
|
os: [ubuntu-latest]
|
||||||
|
sanitizer: [undefined, address]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Yosys
|
- name: Checkout Yosys
|
||||||
|
@ -227,7 +223,7 @@ jobs:
|
||||||
- name: Download build artifact
|
- name: Download build artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: build-${{ matrix.os }}
|
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
|
||||||
|
|
||||||
- name: Uncompress build
|
- name: Uncompress build
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
16
.github/workflows/test-compile.yml
vendored
16
.github/workflows/test-compile.yml
vendored
|
@ -1,14 +1,6 @@
|
||||||
name: Compiler testing
|
name: Compiler testing
|
||||||
|
|
||||||
on:
|
on: [push, pull_request]
|
||||||
# always test main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
# test PRs
|
|
||||||
pull_request:
|
|
||||||
# allow triggering tests, ignores skip check
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre_job:
|
pre_job:
|
||||||
|
@ -19,11 +11,11 @@ jobs:
|
||||||
- id: skip_check
|
- id: skip_check
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
with:
|
with:
|
||||||
# don't run on documentation changes
|
|
||||||
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
||||||
# cancel previous builds if a new commit is pushed
|
# cancel previous builds if a new commit is pushed
|
||||||
# but never cancel main
|
cancel_others: 'true'
|
||||||
cancel_others: ${{ github.ref != 'refs/heads/main' }}
|
# only run on push *or* pull_request, not both
|
||||||
|
concurrent_skipping: 'same_content_newer'
|
||||||
|
|
||||||
test-compile:
|
test-compile:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
105
.github/workflows/test-sanitizers.yml
vendored
105
.github/workflows/test-sanitizers.yml
vendored
|
@ -1,105 +0,0 @@
|
||||||
name: Check clang sanitizers
|
|
||||||
|
|
||||||
on:
|
|
||||||
# always test main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
# ignore PRs due to time needed
|
|
||||||
# allow triggering tests, ignores skip check
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pre_job:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# don't run on documentation changes
|
|
||||||
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
|
||||||
|
|
||||||
run_san:
|
|
||||||
name: Build and run tests
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
needs: pre_job
|
|
||||||
if: needs.pre_job.outputs.should_skip != 'true'
|
|
||||||
env:
|
|
||||||
CC: clang
|
|
||||||
ASAN_OPTIONS: halt_on_error=1
|
|
||||||
UBSAN_OPTIONS: halt_on_error=1
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-latest, macos-latest]
|
|
||||||
sanitizer: ['undefined,address']
|
|
||||||
fail-fast: false
|
|
||||||
steps:
|
|
||||||
- name: Checkout Yosys
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Setup environment
|
|
||||||
uses: ./.github/actions/setup-build-env
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
make -f ../Makefile config-$CC
|
|
||||||
echo 'SANITIZER = ${{ matrix.sanitizer }}' >> Makefile.conf
|
|
||||||
make -f ../Makefile -j$procs ENABLE_LTO=1
|
|
||||||
|
|
||||||
- name: Log yosys-config output
|
|
||||||
run: |
|
|
||||||
./yosys-config || true
|
|
||||||
|
|
||||||
- name: Get iverilog
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/steveicarus/iverilog.git
|
|
||||||
cd iverilog
|
|
||||||
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Get vcd2fst
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/mmicko/libwave.git
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd libwave
|
|
||||||
cmake . -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Cache iverilog
|
|
||||||
id: cache-iverilog
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: .local/
|
|
||||||
key: ${{ matrix.os }}-${IVERILOG_GIT}
|
|
||||||
|
|
||||||
- name: Build iverilog
|
|
||||||
if: steps.cache-iverilog.outputs.cache-hit != 'true'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd iverilog
|
|
||||||
autoconf
|
|
||||||
CC=gcc CXX=g++ ./configure --prefix=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make -j$procs test TARGETS= EXTRA_TARGETS= CONFIG=$CC
|
|
||||||
|
|
||||||
- name: Report errors
|
|
||||||
if: ${{ failure() }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
find tests/**/*.err -print -exec cat {} \;
|
|
16
.github/workflows/test-verific.yml
vendored
16
.github/workflows/test-verific.yml
vendored
|
@ -1,14 +1,6 @@
|
||||||
name: Build and run tests with Verific (Linux)
|
name: Build and run tests with Verific (Linux)
|
||||||
|
|
||||||
on:
|
on: [push, pull_request]
|
||||||
# always test main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
# test PRs
|
|
||||||
pull_request:
|
|
||||||
# allow triggering tests, ignores skip check
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
|
@ -19,11 +11,11 @@ jobs:
|
||||||
- id: skip_check
|
- id: skip_check
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
with:
|
with:
|
||||||
# don't run on documentation changes
|
|
||||||
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
paths_ignore: '["**/README.md", "docs/**", "guidelines/**"]'
|
||||||
# cancel previous builds if a new commit is pushed
|
# cancel previous builds if a new commit is pushed
|
||||||
# but never cancel main
|
cancel_others: 'true'
|
||||||
cancel_others: ${{ github.ref != 'refs/heads/main' }}
|
# only run on push *or* pull_request, not both
|
||||||
|
concurrent_skipping: 'same_content_newer'
|
||||||
|
|
||||||
test-verific:
|
test-verific:
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue