mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
165 lines
5.5 KiB
YAML
165 lines
5.5 KiB
YAML
# NOTE: this workflow is now running on Dronecode / PX4 AWS account.
|
|
# - If you want to keep the tests running in GitHub Actions you need to uncomment the "runs-on: ubuntu-latest" lines
|
|
# and comment the "runs-on: [runs-on,runner=..." lines.
|
|
# - If you would like to duplicate this setup try setting up "RunsOn" on your own AWS account try https://runs-on.com
|
|
|
|
name: Build all targets
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
branches:
|
|
- 'main'
|
|
- 'stable'
|
|
- 'beta'
|
|
- 'release/**'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- '.github/**'
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- '.github/**'
|
|
|
|
jobs:
|
|
group_targets:
|
|
name: Scan for Board Targets
|
|
# runs-on: ubuntu-latest
|
|
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
timestamp: ${{ steps.set-timestamp.outputs.timestamp }}
|
|
tagname: ${{ steps.set-tag.outputs.tagname }}
|
|
branchname: ${{ steps.set-branch.outputs.branchname }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Update python packaging to avoid canonicalize_version() error
|
|
run: |
|
|
pip3 install -U packaging
|
|
|
|
- name: Install Python Dependencies
|
|
uses: py-actions/py-dependency-install@v4
|
|
with:
|
|
path: "./Tools/setup/requirements.txt"
|
|
|
|
- id: set-matrix
|
|
run: echo "::set-output name=matrix::$(./Tools/ci/generate_board_targets_json.py --group)"
|
|
|
|
- id: set-timestamp
|
|
run: echo "::set-output name=timestamp::$(date +"%Y%m%d%H%M%S")"
|
|
|
|
- id: set-branch
|
|
run: echo "::set-output name=branchname::${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
|
|
|
|
- name: Debug Matrix Output
|
|
if: runner.debug == '1'
|
|
run: |
|
|
echo "${{ steps.set-timestamp.outputs.timestamp }}"
|
|
echo "${{ steps.set-branch.outputs.branchname }}"
|
|
echo "$(./Tools/ci/generate_board_targets_json.py --group --verbose)"
|
|
|
|
setup:
|
|
name: Build Group [${{ matrix.group }}]
|
|
# runs-on: ubuntu-latest
|
|
runs-on: [runs-on,runner=8cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
|
needs: group_targets
|
|
strategy:
|
|
matrix: ${{ fromJson(needs.group_targets.outputs.matrix) }}
|
|
fail-fast: false
|
|
container:
|
|
image: ${{ matrix.container }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Git ownership workaround
|
|
run: git config --system --add safe.directory '*'
|
|
|
|
- name: Setup ccache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.ccache
|
|
key: ${{ matrix.group }}-ccache-${{ needs.group_targets.outputs.timestamp }}
|
|
restore-keys: ${{ matrix.group }}-ccache-${{ needs.group_targets.outputs.timestamp }}
|
|
|
|
- name: Configure ccache
|
|
run: |
|
|
mkdir -p ~/.ccache
|
|
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
|
|
echo "compression = true" >> ~/.ccache/ccache.conf
|
|
echo "compression_level = 6" >> ~/.ccache/ccache.conf
|
|
echo "max_size = 120M" >> ~/.ccache/ccache.conf
|
|
echo "hash_dir = false" >> ~/.ccache/ccache.conf
|
|
ccache -s
|
|
ccache -z
|
|
|
|
- name: Building [${{ matrix.group }}]
|
|
run: |
|
|
./Tools/ci/build_all_runner.sh ${{matrix.targets}}
|
|
|
|
- name: Arrange Build Artifacts
|
|
run: |
|
|
./Tools/ci/package_build_artifacts.sh
|
|
|
|
- name: Upload Build Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: px4_${{matrix.group}}_build_artifacts
|
|
path: artifacts/
|
|
|
|
- name: Cache Save
|
|
run: ccache -s
|
|
|
|
artifacts:
|
|
name: Upload Artifacts to S3
|
|
# runs-on: ubuntu-latest
|
|
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
|
needs: [setup, group_targets]
|
|
if: contains(fromJSON('["main", "stable", "beta"]'), needs.group_targets.outputs.branchname)
|
|
steps:
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: artifacts/
|
|
merge-multiple: true
|
|
|
|
- name: Branch Name
|
|
run: |
|
|
echo "${{ needs.group_targets.outputs.branchname }}"
|
|
|
|
- name: Uploading Artifacts to S3 [${{ needs.group_targets.outputs.branchname == 'main' && 'master' || needs.group_targets.outputs.branchname }}]
|
|
uses: jakejarvis/s3-sync-action@master
|
|
with:
|
|
args: --acl public-read
|
|
env:
|
|
AWS_S3_BUCKET: 'px4-travis'
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_REGION: 'us-west-1'
|
|
SOURCE_DIR: artifacts/
|
|
DEST_DIR: Firmware/${{ needs.group_targets.outputs.branchname == 'main' && 'master' || needs.group_targets.outputs.branchname }}/
|
|
|
|
release:
|
|
name: Create Release and Upload Artifacts
|
|
# runs-on: ubuntu-latest
|
|
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
|
needs: [setup, group_targets]
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
steps:
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: artifacts/
|
|
merge-multiple: true
|
|
|
|
- name: Upload Binaries to Release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
draft: true
|
|
files: artifacts/*.px4
|