diff --git a/.github/actions/install-swift/action.yml b/.github/actions/install-swift/action.yml new file mode 100644 index 00000000..68c8fd1a --- /dev/null +++ b/.github/actions/install-swift/action.yml @@ -0,0 +1,43 @@ +name: 'Install Swift' +description: 'Installs the Swift specified by a .swift-version file' + +runs: + using: "composite" + steps: + - name: Install apt dependencies + shell: bash + run: | + SUDO=$(if [[ $EUID -ne 0 ]]; then echo sudo; fi) + $SUDO apt-get -qq update + $SUDO apt-get -qq -y install curl gpg binutils git unzip gnupg2 \ + libc6-dev libcurl4-openssl-dev libedit2 libgcc-13-dev libpython3-dev \ + libstdc++-13-dev libxml2-dev libncurses-dev libz3-dev pkg-config \ + tzdata zlib1g-dev + env: + DEBIAN_FRONTEND: noninteractive + + - name: Install Swiftly + shell: bash + run: | + UNAME=$(uname -m) + + export SWIFTLY_HOME_DIR="$HOME/.local/share/swiftly" + echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $GITHUB_ENV + echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $HOME/.bashrc + + export SWIFTLY_BIN_DIR="$HOME/.local/share/swiftly/bin" + echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $GITHUB_ENV + echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $HOME/.bashrc + + curl -O "https://download.swift.org/swiftly/linux/swiftly-$UNAME.tar.gz" + tar zxf "swiftly-$UNAME.tar.gz" + ./swiftly init --skip-install --assume-yes --quiet-shell-followup + + echo "PATH=$SWIFTLY_BIN_DIR:$PATH" >> $GITHUB_ENV + echo "PATH=\$SWIFTLY_BIN_DIR:\$PATH" >> $HOME/.bashrc + + - name: Install Swift + shell: bash + run: | + swiftly install + swift --version diff --git a/.github/workflows/build-esp.yml b/.github/workflows/build-esp.yml index 066f0718..9ac4de81 100644 --- a/.github/workflows/build-esp.yml +++ b/.github/workflows/build-esp.yml @@ -13,11 +13,11 @@ jobs: build-esp: runs-on: ubuntu-24.04 container: espressif/idf:latest + strategy: fail-fast: false matrix: example: [esp32-led-blink-sdk, esp32-led-strip-sdk] - swift: [swift-DEVELOPMENT-SNAPSHOT-2024-12-04-a] steps: - name: Checkout repo @@ -26,13 +26,8 @@ jobs: - name: Install apt dependencies run: apt-get -qq update && apt-get -qq -y install pkg-config - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - swiftc --version + - name: Install Swift + uses: ./.github/actions/install-swift - name: Build ${{ matrix.example }} run: | diff --git a/.github/workflows/build-nuttx.yml b/.github/workflows/build-nuttx.yml index f9104e52..5fe2cc97 100644 --- a/.github/workflows/build-nuttx.yml +++ b/.github/workflows/build-nuttx.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: example: [nuttx-riscv-blink] - swift: [swift-DEVELOPMENT-SNAPSHOT-2024-12-22-a] steps: - name: Checkout repo @@ -50,18 +49,11 @@ jobs: echo "PATH=$PATH" >> $GITHUB_ENV riscv-none-elf-gcc --version - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - swiftc --version - - - name: Config ${{ matrix.example }} - working-directory: ${{ matrix.example }} - run: cmake -B build -GNinja -DBOARD_CONFIG=rv-virt:leds_swift -DENABLE_NUTTX_TRACE=ON + - name: Install Swift + uses: ./.github/actions/install-swift - name: Build ${{ matrix.example }} working-directory: ${{ matrix.example }} - run: cmake --build build + run: | + cmake -B build -GNinja -DBOARD_CONFIG=rv-virt:leds_swift -DENABLE_NUTTX_TRACE=ON + cmake --build build diff --git a/.github/workflows/build-pico-sdk.yml b/.github/workflows/build-pico-sdk.yml index 25ec50ed..341566cd 100644 --- a/.github/workflows/build-pico-sdk.yml +++ b/.github/workflows/build-pico-sdk.yml @@ -12,6 +12,7 @@ on: jobs: build-pico-sdk: runs-on: ubuntu-24.04 + strategy: fail-fast: false matrix: @@ -22,7 +23,6 @@ jobs: board: pico_w - name: harmony board: pico_w - swift: [swift-DEVELOPMENT-SNAPSHOT-2024-12-04-a] steps: - name: Checkout repo @@ -46,14 +46,8 @@ jobs: curl -sL https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$ARCH-arm-none-eabi.tar.xz -O tar xf arm-gnu-toolchain-14.2.rel1-$ARCH-arm-none-eabi.tar.xz - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - which swiftc - swiftc --version + - name: Install Swift + uses: ./.github/actions/install-swift - name: Clone Pico SDK run: | @@ -78,7 +72,7 @@ jobs: echo "PICO_TOOLCHAIN_PATH=`pwd`/arm-gnu-toolchain-14.2.rel1-$ARCH-arm-none-eabi" >> $GITHUB_ENV - name: Build ${{ matrix.example.name }} + working-directory: ${{ matrix.example.name }} run: | - cd ${{ matrix.example.name }} cmake -B build -G Ninja . cmake --build build diff --git a/.github/workflows/build-rpi-baremetal.yml b/.github/workflows/build-rpi-baremetal.yml index 1a3a833b..48484282 100644 --- a/.github/workflows/build-rpi-baremetal.yml +++ b/.github/workflows/build-rpi-baremetal.yml @@ -8,14 +8,15 @@ on: schedule: # Build on Mondays at 9am PST every week - cron: '0 17 * * 1' + jobs: build-rpi-baremetal: runs-on: ubuntu-24.04 + strategy: fail-fast: false matrix: - example: [rpi5-blink, rpi4b-blink] - swift: [swift-DEVELOPMENT-SNAPSHOT-2024-12-04-a] + example: [rpi4b-blink, rpi5-blink] steps: - name: Checkout repo @@ -24,16 +25,9 @@ jobs: - name: Install apt dependencies run: sudo apt-get -qq update && sudo apt-get -qq -y install make llvm - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - which swiftc - swiftc --version + - name: Install Swift + uses: ./.github/actions/install-swift - name: Build ${{ matrix.example }} - run: | - cd ${{ matrix.example }} - make + working-directory: ${{ matrix.example }} + run: make diff --git a/.github/workflows/build-stm.yml b/.github/workflows/build-stm.yml index d26823bf..3c77217a 100644 --- a/.github/workflows/build-stm.yml +++ b/.github/workflows/build-stm.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: example: [stm32-blink] - swift: [swift-DEVELOPMENT-SNAPSHOT-2025-03-04-a] steps: - name: Checkout repo @@ -31,13 +30,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - swiftc --version + - name: Install Swift + uses: ./.github/actions/install-swift - name: Build ${{ matrix.example }} working-directory: ${{ matrix.example }} diff --git a/.github/workflows/build-zephyr.yml b/.github/workflows/build-zephyr.yml index 00d15ee6..d2a96f2a 100644 --- a/.github/workflows/build-zephyr.yml +++ b/.github/workflows/build-zephyr.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: example: [nrfx-blink-sdk] - swift: [swift-DEVELOPMENT-SNAPSHOT-2024-12-04-a] steps: - name: Checkout repo @@ -34,13 +33,8 @@ jobs: app-path: ${{ matrix.example }} toolchains: arm-zephyr-eabi - - name: Install ${{ matrix.swift }} - run: | - wget -q https://download.swift.org/development/ubuntu2404/${{ matrix.swift }}/${{ matrix.swift }}-ubuntu24.04.tar.gz - tar xzf ${{ matrix.swift }}-ubuntu24.04.tar.gz - export PATH="`pwd`/${{ matrix.swift }}-ubuntu24.04/usr/bin/:$PATH" - echo "PATH=$PATH" >> $GITHUB_ENV - swiftc --version + - name: Install Swift + uses: ./.github/actions/install-swift - name: Build ${{ matrix.example }} working-directory: ${{ matrix.example }} diff --git a/.swift-version b/.swift-version new file mode 100644 index 00000000..79c018bd --- /dev/null +++ b/.swift-version @@ -0,0 +1 @@ +main-snapshot-2025-04-12