ci #1200
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-License-Identifier: MIT-0 | |
--- | |
name: ci | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
schedule: | |
- cron: '0 12 * * *' | |
concurrency: | |
# Cancel previous CI runs when additional commits are added to a pull request. | |
# This will not cancel CI runs associated with `schedule` or `push`. | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
macos_ventura: | |
name: macos ventura 13 | |
runs-on: macos-13 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
# See issue https://github.com/actions/setup-python/issues/577. There is | |
# some kind of environment conflict between the symlinks found in the | |
# GitHub Actions runner and `brew upgrade python` where `brew` detects and | |
# refuses to overwrite symlinks. The cause for our runs is not clear, | |
# we do not use that action, but if that issue is closed this section | |
# can be removed. | |
- name: sanitize GHA / brew python environment | |
run: | | |
# Remove the symlinks that cause issues. | |
find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete | |
sudo rm -rf /Library/Frameworks/Python.framework/ | |
# | |
###################################################################### | |
# For brew formulas that have issues during `brew upgrade` due to | |
# symlinks already existing, we use the strategy: | |
# brew list <formula> && (brew unlink ... ) | |
# The `brew list <formula>` will error if it is not installed. When | |
# the logs say something like "No such keg: /some/path/<formula>" | |
# that means the band-aid can be removed from DEE CI. | |
###################################################################### | |
# On 2023-02-24 `brew upgrade` resulted in a failure linking tcl-tk. | |
brew list tcl-tk && brew unlink tcl-tk | |
# | |
# On 2023-04-06 `brew upgrade` resulted in a failure upgrading `go`. | |
brew list go && ( \ | |
brew unlink go && \ | |
rm -f /usr/local/bin/go && \ | |
rm -f /usr/local/bin/gofmt \ | |
) | |
# | |
# On 2023-09-25 there were issues upgrading node@18 from 18.17.1 to | |
# 18.18.0, caused by `brew upgrade`. | |
brew list node@18 && ( \ | |
brew unlink node@18 && \ | |
rm -rf /usr/local/lib/node_modules/ \ | |
) | |
###################################################################### | |
# Run upgrades now to fail-fast (setup scripts do this anyway). | |
###################################################################### | |
brew update && brew upgrade | |
# On 2023-02-16 the pip3.11 symlink was mysteriously missing. | |
brew unlink [email protected] && brew link [email protected] | |
pip3.11 --version | |
- name: setup | |
run: ./scripts/continuous_integration/github_actions/macos_ventura/setup | |
shell: zsh -efuo pipefail {0} | |
- name: build and test | |
run: ./scripts/continuous_integration/github_actions/macos_ventura/build_test | |
shell: zsh -efuo pipefail {0} | |
ros_foxy: | |
name: ros 2 foxy | |
runs-on: ubuntu-latest | |
container: ubuntu:focal | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: setup | |
run: ./scripts/continuous_integration/github_actions/ros_foxy/setup | |
shell: bash | |
- name: build and test | |
run: ./scripts/continuous_integration/github_actions/ros_foxy/build_test | |
shell: bash | |
ubuntu_focal: | |
name: ubuntu 20.04 focal | |
runs-on: ubuntu-latest | |
container: ubuntu:focal | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: setup | |
run: ./scripts/continuous_integration/github_actions/ubuntu_focal/setup | |
shell: bash | |
- name: build and test | |
run: ./scripts/continuous_integration/github_actions/ubuntu_focal/build_test | |
shell: bash | |
ubuntu_focal_apt: | |
name: ubuntu 20.04 focal apt | |
runs-on: ubuntu-latest | |
container: ubuntu:focal | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: setup | |
run: ./scripts/continuous_integration/github_actions/ubuntu_apt/setup | |
shell: bash | |
- name: build and test | |
run: ./scripts/continuous_integration/github_actions/ubuntu_apt/build_test | |
shell: bash |