Skip to content

deps: update fontdue requirement from 0.8.0 to 0.9.1 in /crates/bestool #405

deps: update fontdue requirement from 0.8.0 to 0.9.1 in /crates/bestool

deps: update fontdue requirement from 0.8.0 to 0.9.1 in /crates/bestool #405

Workflow file for this run

name: CI
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- "v*"
env:
CARGO_TERM_COLOR: always
CARGO_UNSTABLE_SPARSE_REGISTRY: "true"
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
platform:
- macos
- ubuntu
- windows
command:
- test
- clippy
name: ${{ matrix.platform }} / ${{ matrix.command }}
runs-on: "${{ matrix.platform }}-latest"
steps:
- uses: actions/checkout@v4
- name: Configure toolchain
run: |
rustup toolchain install --profile minimal --no-self-update stable
rustup default stable
# https://github.com/actions/cache/issues/752
- if: runner.os == 'Windows'
name: Use GNU tar
shell: cmd
run: |
echo "Adding GNU tar to PATH"
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
- if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y musl musl-dev musl-tools gcc-aarch64-linux-gnu
rustup target add x86_64-unknown-linux-musl
rustup target add aarch64-unknown-linux-gnu
rustup target add aarch64-unknown-linux-musl
- if: runner.os == 'Linux'
uses: taiki-e/install-action@v2
with:
tool: cross
- if: runner.os == 'macOS'
run: |
rustup target add aarch64-apple-darwin
- uses: Swatinem/rust-cache@v2
- run: cargo ${{ matrix.command }}
build:
if: github.ref_type != 'pull_request'
permissions:
contents: read
id-token: write
strategy:
fail-fast: false
matrix:
target:
- x86_64-apple-darwin
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- x86_64-pc-windows-msvc
- aarch64-apple-darwin
- aarch64-unknown-linux-musl
name: Build / ${{ matrix.target }}
runs-on: >-
${{ contains(matrix.target, 'linux') && 'ubuntu-latest' || (
contains(matrix.target, 'windows') && 'windows-latest' || (
contains(matrix.target, 'darwin') && 'macos-14' ||
'ubuntu-latest'
)
) }}
steps:
- uses: actions/checkout@v4
- name: Configure toolchain
run: |
rustup toolchain install --profile minimal --no-self-update stable
rustup target add ${{ matrix.target }}
rustup default stable
# https://github.com/actions/cache/issues/752
- if: runner.os == 'Windows'
name: Use GNU tar
shell: cmd
run: |
echo "Adding GNU tar to PATH"
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
# Avoids depending on vcruntime*.dll, which is not present in e.g. nanoserver
- if: runner.os == 'Windows'
name: Statically link crt
shell: bash
run: |
echo 'RUSTFLAGS=-Ctarget-feature=+crt-static' >> "$GITHUB_ENV"
- if: runner.os == 'Linux'
run: sudo apt-get update
- if: contains(matrix.target, 'musl')
run: sudo apt-get install -y musl musl-dev musl-tools
- if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get install -y gcc-aarch64-linux-gnu
- if: runner.os == 'Linux' && matrix.target != 'x86_64-unknown-linux-gnu'
uses: taiki-e/install-action@v2
with:
tool: cross
- uses: Swatinem/rust-cache@v2
- if: runner.os == 'Linux' && matrix.target != 'x86_64-unknown-linux-gnu'
run: cross build -p bestool --profile dist --target ${{ matrix.target }} --features dyndns,iti
- if: runner.os != 'Linux' || matrix.target == 'x86_64-unknown-linux-gnu'
run: cargo build -p bestool --profile dist --target ${{ matrix.target }}
- uses: actions/upload-artifact@v4
with:
name: bestool-${{ matrix.target }}-${{ github.sha }}
if-no-files-found: error
retention-days: 7
path: |
target/*/dist/bestool
target/*/dist/bestool.exe
- name: Configure AWS Credentials
if: startsWith(github.ref, 'refs/tags/v')
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-southeast-2
role-to-assume: arn:aws:iam::143295493206:role/gha-ops-scripts-s3
role-session-name: GHA@BEStool=Build
- name: Upload versioned
if: startsWith(github.ref, 'refs/tags/v')
shell: bash
run: |
version=$(sed -E 's/refs\/tags\/v//' <<< "${{ github.ref }}")
src="target/${{ matrix.target }}/dist/bestool"
dest="s3://bes-ops-tools/bestool/${version}/${{ matrix.target }}/"
if [[ ${{ runner.os }} == "Windows" ]]; then
aws s3 cp "$src".exe "$dest" --no-progress
else
aws s3 cp "$src" "$dest" --no-progress
fi
aws cloudfront create-invalidation --distribution-id=EDAG0UBS1MN74 --paths "/bestool/${version}/*"
- name: Upload latest
if: startsWith(github.ref, 'refs/tags/v')
shell: bash
run: |
src="target/${{ matrix.target }}/dist/bestool"
dest="s3://bes-ops-tools/bestool/latest/${{ matrix.target }}/"
if [[ ${{ runner.os }} == "Windows" ]]; then
aws s3 cp "$src".exe "$dest" --no-progress
else
aws s3 cp "$src" "$dest" --no-progress
fi
aws cloudfront create-invalidation --distribution-id=EDAG0UBS1MN74 --paths '/bestool/latest/*'
- name: Upload for GHA
if: startsWith(github.ref, 'refs/tags/v')
shell: bash
run: |
src="target/${{ matrix.target }}/dist/bestool"
dest="s3://bes-ops-tools/bestool/gha"
if [[ ${{ matrix.target }} == "x86_64-unknown-linux-gnu" ]]; then
dest="$dest/Linux-X64"
elif [[ ${{ matrix.target }} == "x86_64-apple-darwin" ]]; then
dest="$dest/macOS-X64"
elif [[ ${{ matrix.target }} == "x86_64-pc-windows-msvc" ]]; then
src="$src.exe"
dest="$dest/Windows-X64"
elif [[ ${{ matrix.target }} == "aarch64-apple-darwin" ]]; then
dest="$dest/macOS-ARM64"
elif [[ ${{ matrix.target }} == "aarch64-unknown-linux-musl" ]]; then
dest="$dest/Linux-ARM64"
else
exit 0
fi
aws s3 cp "$src" "$dest" --no-progress
aws cloudfront create-invalidation --distribution-id=EDAG0UBS1MN74 --paths '/bestool/gha/*'
tests-pass:
if: always()
name: Tests pass
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}