Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update suppressions.txt #33

Open
wants to merge 47 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9912270
Start work on build matrix for parallel jobs
thebentern Feb 12, 2022
65dc663
Merge pull request #13 from Hydra-Designs/build-matrix
thebentern Feb 12, 2022
759bd30
Ignore master for right now
thebentern Feb 12, 2022
acfd97c
Index
thebentern Feb 12, 2022
7259a38
Boards
thebentern Feb 12, 2022
b435f39
Build args
thebentern Feb 12, 2022
250a95d
Matrix syntax
thebentern Feb 12, 2022
f0fc43d
Artifacts
thebentern Feb 12, 2022
9b40dd1
More breaking apart
thebentern Feb 12, 2022
093ffe0
Index
thebentern Feb 12, 2022
6c4e6d6
Syntax
thebentern Feb 12, 2022
3b6bc81
Syntax
thebentern Feb 12, 2022
39caf6a
Removed elfs... elves?
thebentern Feb 12, 2022
7bbca3d
Dispatch
thebentern Feb 12, 2022
716a661
Download
thebentern Feb 12, 2022
2d9fa82
Dont package zips in zips
thebentern Feb 12, 2022
0ef75f0
Wildcard gathers
thebentern Feb 13, 2022
bcb2f3c
Wildcard gathers
thebentern Feb 13, 2022
cda1fd9
Wildcard gathers
thebentern Feb 13, 2022
4d905fb
Wildcard gathers
thebentern Feb 13, 2022
168fe75
Flatten folders
thebentern Feb 13, 2022
a7624fb
Flatten folders
thebentern Feb 13, 2022
8ee4b3c
Flatten folders again
thebentern Feb 13, 2022
ae9f3c1
Unzip artifacts
thebentern Feb 13, 2022
e22958b
Artifacts repackaging
thebentern Feb 13, 2022
058c896
Download to root
thebentern Feb 13, 2022
350995a
No need to repackage
thebentern Feb 13, 2022
9b4446b
Check in parallel
thebentern Feb 13, 2022
28a3581
Check in parallel
thebentern Feb 13, 2022
c9fb50b
Move assets up one dir
thebentern Feb 13, 2022
7721812
Attempt to ignore colissions
thebentern Feb 13, 2022
4e54ef9
Copy spiffs and system separately
thebentern Feb 13, 2022
4747d5c
Fix glob
thebentern Feb 13, 2022
9ab2246
Generate version
thebentern Feb 13, 2022
7448891
Path
thebentern Feb 13, 2022
2356cde
Download artifact as zip
thebentern Feb 13, 2022
b114f43
Artifact name
thebentern Feb 13, 2022
2de13e1
Artifact name
thebentern Feb 13, 2022
bc2532d
Artifact name upload
thebentern Feb 13, 2022
9d73ad8
Update main_matrix.yml
thebentern Feb 13, 2022
1991f85
Zip artifact download
thebentern Feb 13, 2022
9653045
Path
thebentern Feb 13, 2022
d73ddd9
Diagnostics
thebentern Feb 13, 2022
818bfbc
Diagnostics
thebentern Feb 13, 2022
670c22d
Zip
thebentern Feb 13, 2022
c1cc76d
Zip correct dir
thebentern Feb 13, 2022
5fea1ff
Update suppressions.txt
thebentern Feb 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,8 @@
name: Continuous Integration
name: Continuous Integration (Legacy serial build)
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'
- 'version.properties'

# Note: This is different from "pull_request". Need to specify ref when doing checkouts.
pull_request_target:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'

workflow_dispatch:

jobs:

ci-check:
Expand Down
332 changes: 332 additions & 0 deletions .github/workflows/main_matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,332 @@
name: Continuous Integration
on:
# # Triggers the workflow on push but only for the master branch
push:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'
- 'version.properties'

# Note: This is different from "pull_request". Need to specify ref when doing checkouts.
pull_request_target:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'

workflow_dispatch:

jobs:

check:
strategy:
fail-fast: false
matrix:
include:
- board: rak11200
- board: tlora-v2
- board: tlora-v1
- board: tlora_v1_3
- board: tlora-v2-1-1.6
- board: tbeam
- board: heltec-v1
- board: heltec-v2.0
- board: heltec-v2.1
- board: tbeam0.7
- board: meshtastic-diy-v1
- board: rak4631_5005
- board: rak4631_19003
- board: t-echo

runs-on: ubuntu-latest
steps:

- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Install cppcheck
run: |
sudo apt-get install -y cppcheck

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x

- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip

- name: Upgrade python tools and install platformio
run: |
python -m pip install --upgrade pip
pip install -U platformio

- name: Upgrade platformio
run: |
pio upgrade

- name: Check ${{ matrix.board }}
run: bin/check-all.sh ${{ matrix.board }}

build-esp32:
strategy:
fail-fast: false
matrix:
include:
- board: rak11200
- board: tlora-v2
- board: tlora-v1
- board: tlora_v1_3
- board: tlora-v2-1-1.6
- board: tbeam
- board: heltec-v1
- board: heltec-v2.0
- board: heltec-v2.1
- board: tbeam0.7
- board: meshtastic-diy-v1

runs-on: ubuntu-latest
steps:

- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x

- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip

- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil

- name: Upgrade platformio
run: |
pio upgrade

- name: Pull web ui
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "meshtastic/meshtastic-web"
file: "build.tar"
target: "build.tar"
token: ${{ secrets.GITHUB_TOKEN }}

- name: Unpack web ui
run: |
tar -xf build.tar -C data/static
rm build.tar

- name: Build ESP32
run: bin/build-esp32.sh ${{ matrix.board }}

- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version

- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-${{ matrix.board }}-${{ steps.version.outputs.version }}.zip
path: |
release/*.bin
release/*.elf
retention-days: 90

build-nrf52:
strategy:
fail-fast: false
matrix:
include:
- board: rak4631_5005
- board: rak4631_19003
- board: t-echo

runs-on: ubuntu-latest
steps:

- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x

- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip

- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil

- name: Upgrade platformio
run: |
pio upgrade

- name: Build NRF52
run: bin/build-nrf52.sh ${{ matrix.board }}

- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version

- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-${{ matrix.board }}-${{ steps.version.outputs.version }}.zip
path: |
release/*.uf2
release/*.elf
retention-days: 90

build-native:
runs-on: ubuntu-latest
steps:

- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x

- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip

- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil

- name: Upgrade platformio
run: |
pio upgrade

# We now run integration test before other build steps (to quickly see runtime failures)
- name: Build for native
run: platformio run -e native
- name: Integration test
run: |
.pio/build/native/program &
sleep 20 # 5 seconds was not enough
echo "Simulator started, launching python test..."
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'

- name: Build Native
run: bin/build-native.sh

- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version

- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-native-${{ steps.version.outputs.version }}.zip
path: |
release/meshtasticd_linux_amd64
release/device-*.sh
release/device-*.bat
retention-days: 90

gather-artifacts:
runs-on: ubuntu-latest
needs: [build-esp32, build-nrf52, build-native]
steps:

- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- uses: actions/download-artifact@v2
with:
path: ./

- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version

- name: Move files up
run: mv -b -t ./ ./*tbeam-*/spiffs*.bin ./*tbeam-*/system-info.bin ./**/firmware*.bin ./**/*.uf2 ./**/*.elf ./**/meshtasticd_linux_amd64 ./*native*/*device-*.sh ./*native*/*device-*.bat

- name: Repackage in single firmware zip
uses: actions/upload-artifact@v2
with:
name: firmware-${{ steps.version.outputs.version }}
path: |
./*.bin
./*.uf2
./meshtasticd_linux_amd64
./device-*.sh
./device-*.bat
retention-days: 90

- uses: actions/download-artifact@v2
with:
name: firmware-${{ steps.version.outputs.version }}
path: ./output

# For diagnostics
- name: Show artifacts
run: ls -lR

- name: Zip firmware
run: zip -r ./firmware-${{ steps.version.outputs.version }}.zip ./output

- name: Repackage in single elfs zip
uses: actions/upload-artifact@v2
with:
name: debug-elfs-${{ steps.version.outputs.version }}.zip
path: ./*.elf
retention-days: 90

- name: Create request artifacts
if: ${{ github.event_name == 'pull_request_target' || github.event_name == 'pull_request' }}
uses: gavv/[email protected]
with:
commit: ${{ (github.event.pull_request_target || github.event.pull_request).head.sha }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
artifacts-branch: artifacts
artifacts: ./firmware-${{ steps.version.outputs.version }}.zip
Loading