Skip to content

Commit

Permalink
refactor: ♻️ Split Raspberry CI files into CI and Package
Browse files Browse the repository at this point in the history
  • Loading branch information
SergioGasquez committed Oct 5, 2022
1 parent d6d292f commit cac7355
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 77 deletions.
8 changes: 0 additions & 8 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,38 +24,30 @@ jobs:
fail-fast: false
matrix:
crate: ["espflash", "cargo-espflash"]

steps:
- uses: actions/checkout@v2

- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ inputs.target }}
override: true

- uses: Swatinem/rust-cache@v1

- name: Build dependencies for other ubuntu targets
if: inputs.runs_on == 'ubuntu-latest'
run: |
sudo sed -i 's/azure.archive.ubuntu.com/archive.ubuntu.com/' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install musl-tools libudev-dev
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --all --target ${{ inputs.target }}

- name: Compress (Unix)
if: ${{ inputs.runs_on != 'windows-latest' }}
run: zip -j ${{ matrix.crate }}-${{ inputs.target }}.zip target/${{ inputs.target }}/release/${{ matrix.crate }}${{ inputs.extension }}

- name: Compress (Windows)
if: ${{ inputs.runs_on == 'windows-latest' }}
run: Compress-Archive target/${{ inputs.target }}/release/${{ matrix.crate }}${{ inputs.extension }} ${{ matrix.crate }}-${{ inputs.target }}.zip

- uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/raspberry_package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Rasberry Pi Package

on:
workflow_call:
inputs:
target:
required: true
type: string
arch:
required: false
default: ""
type: string

env:
CARGO_TERM_COLOR: always

jobs:
publish-release:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
crate: ["espflash", "cargo-espflash"]
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ inputs.target }}
override: true
- uses: Swatinem/rust-cache@v1
- name: Replace target string
uses: mad9000/actions-find-and-replace-string@1
id: findandreplace
with:
source: ${{ inputs.target }}
find: "unknown-"
replace: ""
- name: Build dependencies
run: |
sudo sed -i 's/azure\.//' /etc/apt/sources.list
sudo apt-get update
echo "deb [arch=${{ inputs.arch }}] http://ports.ubuntu.com/ubuntu-ports focal main universe" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=${{ inputs.arch }}] http://ports.ubuntu.com/ubuntu-ports focal-updates main universe" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo dpkg --add-architecture ${{ inputs.arch }}
sudo apt-get install -y curl git libudev-dev musl-tools pkg-config "libudev1:${{ inputs.arch }}" "libgcc-s1:${{ inputs.arch }}" "libc6:${{ inputs.arch }}" "libudev-dev:${{ inputs.arch }}" gcc-arm-linux-gnueabihf pkg-config-arm-linux-gnueabihf gcc-aarch64-linux-gnu pkg-config-aarch64-linux-gnu
echo "PKG_CONFIG_ALLOW_SYSTEM_LIBS=0" >> $GITHUB_ENV
echo "PKG_CONFIG_DIR=/opt/" >> $GITHUB_ENV
echo "PKG_CONFIG_LIBDIR=/opt/usr/lib/pkgconfig:/opt/usr/share/pkgconfig" >> $GITHUB_ENV
echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV
if [[ ${{ inputs.arch }} == arm64 ]]; then
echo "PKG_CONFIG_PATH=/usr/lib/${{ steps.findandreplace.outputs.value }}/pkgconfig" >> $GITHUB_ENV
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=${{ steps.findandreplace.outputs.value }}-gcc" >> $GITHUB_ENV
fi
if [[ ${{ inputs.arch }} == armhf ]]; then
echo "PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig" >> $GITHUB_ENV
echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc" >> $GITHUB_ENV
fi
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --all --target ${{ inputs.target }} --features=raspberry
- name: Compress
run: zip -j ${{ matrix.crate }}-${{ inputs.target }}.zip target/${{ inputs.target }}/release/${{ matrix.crate }}${{ inputs.extension }}
- uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ matrix.crate }}-${{ inputs.target }}.zip
tag: ${{ github.ref }}
Original file line number Diff line number Diff line change
@@ -1,82 +1,17 @@
name: Rasberry Pi
name: Rasberry Pi CI

on:
pull_request:
branches:
- master
push:
workflow_dispatch:
workflow_call:
inputs:
target:
required: true
type: string
arch:
required: false
default: ""
type: string

env:
CARGO_TERM_COLOR: always

jobs:
publish-release:
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
crate: ["espflash", "cargo-espflash"]
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ inputs.target }}
override: true
- uses: Swatinem/rust-cache@v1
- name: Replace target string
uses: mad9000/actions-find-and-replace-string@1
id: findandreplace
with:
source: ${{ inputs.target }}
find: "unknown-"
replace: ""
- name: Build dependencies
run: |
sudo sed -i 's/azure\.//' /etc/apt/sources.list
sudo apt-get update
echo "deb [arch=${{ inputs.arch }}] http://ports.ubuntu.com/ubuntu-ports focal main universe" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=${{ inputs.arch }}] http://ports.ubuntu.com/ubuntu-ports focal-updates main universe" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo dpkg --add-architecture ${{ inputs.arch }}
sudo apt-get install -y curl git libudev-dev musl-tools pkg-config "libudev1:${{ inputs.arch }}" "libgcc-s1:${{ inputs.arch }}" "libc6:${{ inputs.arch }}" "libudev-dev:${{ inputs.arch }}" gcc-arm-linux-gnueabihf pkg-config-arm-linux-gnueabihf gcc-aarch64-linux-gnu pkg-config-aarch64-linux-gnu
echo "PKG_CONFIG_ALLOW_SYSTEM_LIBS=0" >> $GITHUB_ENV
echo "PKG_CONFIG_DIR=/opt/" >> $GITHUB_ENV
echo "PKG_CONFIG_LIBDIR=/opt/usr/lib/pkgconfig:/opt/usr/share/pkgconfig" >> $GITHUB_ENV
echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV
if [[ ${{ inputs.arch }} == arm64 ]]; then
echo "PKG_CONFIG_PATH=/usr/lib/${{ steps.findandreplace.outputs.value }}/pkgconfig" >> $GITHUB_ENV
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=${{ steps.findandreplace.outputs.value }}-gcc" >> $GITHUB_ENV
fi
if [[ ${{ inputs.arch }} == armhf ]]; then
echo "PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig" >> $GITHUB_ENV
echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc" >> $GITHUB_ENV
fi
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --all --target ${{ inputs.target }} --features=raspberry
- name: Compress
run: zip -j ${{ matrix.crate }}-${{ inputs.target }}.zip target/${{ inputs.target }}/release/${{ matrix.crate }}${{ inputs.extension }}
- uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ matrix.crate }}-${{ inputs.target }}.zip
tag: ${{ github.ref }}

rust-ci:
if: github.event_name != 'workflow_dispatch'
name: "Rust CI: ${{ matrix.job.name }} - ${{ matrix.board.target }}"
runs-on: ubuntu-latest
strategy:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ jobs:
# Linux

armv7-unknown-linux-gnueabihf:
uses: ./.github/workflows/raspberry.yml
uses: ./.github/workflows/raspberry_package.yml
with:
target: armv7-unknown-linux-gnueabihf
arch: armhf

aarch64-unknown-linux-gnu:
uses: ./.github/workflows/raspberry.yml
uses: ./.github/workflows/raspberry_package.yml
with:
target: aarch64-unknown-linux-gnu
arch: arm64
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
name: CI

on:
pull_request:
branches:
- master
push:
workflow_dispatch:

name: CI
env:
CARGO_TERM_COLOR: always

jobs:
check:
Expand Down

0 comments on commit cac7355

Please sign in to comment.