kopia lustrzana https://github.com/meshtastic/firmware
86 wiersze
2.7 KiB
YAML
86 wiersze
2.7 KiB
YAML
name: Build Native
|
|
|
|
on: workflow_call
|
|
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
|
|
jobs:
|
|
build-native:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install libbluetooth
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
ref: ${{github.event.pull_request.head.ref}}
|
|
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
|
|
- name: Upgrade python tools
|
|
shell: bash
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -U platformio adafruit-nrfutil
|
|
pip install -U meshtastic --pre
|
|
|
|
- name: Upgrade platformio
|
|
shell: bash
|
|
run: |
|
|
pio upgrade
|
|
|
|
- name: Build Native
|
|
run: bin/build-native.sh
|
|
|
|
- name: Get release version string
|
|
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
id: version
|
|
|
|
- name: Store binaries as an artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: firmware-native-${{ steps.version.outputs.version }}.zip
|
|
overwrite: true
|
|
path: |
|
|
release/meshtasticd_linux_x86_64
|
|
bin/config-dist.yaml
|
|
|
|
- name: Docker login
|
|
if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
|
uses: docker/login-action@v3
|
|
continue-on-error: true # FIXME: Failing docker login auth
|
|
with:
|
|
username: meshtastic
|
|
password: ${{ secrets.DOCKER_FIRMWARE_TOKEN }}
|
|
|
|
- name: Docker setup
|
|
if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
|
continue-on-error: true # FIXME: Failing docker login auth
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Docker build and push tagged versions
|
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
|
continue-on-error: true # FIXME: Failing docker login auth
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./Dockerfile
|
|
push: true
|
|
tags: meshtastic/device-simulator:${{ steps.version.outputs.version }}
|
|
|
|
- name: Docker build and push
|
|
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
|
continue-on-error: true # FIXME: Failing docker login auth
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
file: ./Dockerfile
|
|
push: true
|
|
tags: meshtastic/device-simulator:latest
|