Increase PNG compression level #828
Workflow file for this run
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
name: Build | |
on: | |
pull_request: | |
push: | |
branches: | |
- 'master' | |
tags: | |
- '*' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os || 'ubuntu-latest' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
label: | |
- Linux powerpc | |
- Linux powerpc64 | |
- Linux s390x | |
- Linux sparc64 | |
include: | |
- label: Linux powerpc | |
target: powerpc-unknown-linux-gnu | |
auto_splitting: skip | |
- label: Linux powerpc64 | |
target: powerpc64-unknown-linux-gnu | |
auto_splitting: skip | |
- label: Linux s390x | |
target: s390x-unknown-linux-gnu | |
software_rendering: skip | |
# FIXME: Somehow the rendering is messed up on s390x. I didn't look | |
# into what the problem is. Might be inaccurate floating point on | |
# this architecture. | |
- label: Linux sparc64 | |
target: sparc64-unknown-linux-gnu | |
auto_splitting: skip | |
# FIXME: rustls currently does not support sparc64. | |
networking: skip | |
steps: | |
- name: Checkout Commit | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: hecrj/setup-rust-action@v2 | |
with: | |
rust-version: ${{ matrix.toolchain || 'stable' }} | |
- name: Install Target | |
if: matrix.install_target != '' | |
run: rustup target add ${{ matrix.target }} | |
- name: Download cross | |
if: matrix.cross == '' && matrix.no_std == '' | |
uses: robinraju/[email protected] | |
with: | |
repository: "cross-rs/cross" | |
latest: true | |
fileName: "cross-x86_64-unknown-linux-gnu.tar.gz" | |
out-file-path: "/home/runner/.cargo/bin" | |
- name: Install cross | |
if: matrix.cross == '' && matrix.no_std == '' | |
run: | | |
cd ~/.cargo/bin | |
tar -xzf cross-x86_64-unknown-linux-gnu.tar.gz | |
- name: Test | |
if: matrix.tests == '' | |
run: sh .github/workflows/test.sh | |
env: | |
TARGET: ${{ matrix.target }} | |
SKIP_CROSS: ${{ matrix.cross }} | |
SKIP_AUTO_SPLITTING: ${{ matrix.auto_splitting }} | |
SKIP_NETWORKING: ${{ matrix.networking }} | |
SKIP_SOFTWARE_RENDERING: ${{ matrix.software_rendering }} | |
- name: Upload screenshots | |
if: matrix.tests == '' && (success() || failure()) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Screenshots ${{ matrix.label }} | |
path: target/renders | |
- name: Prepare Release | |
if: startsWith(github.ref, 'refs/tags/') && matrix.release == '' | |
shell: bash | |
run: .github/workflows/before_deploy.sh | |
env: | |
OS_NAME: ${{ matrix.os }} | |
TARGET: ${{ matrix.target }} | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') && matrix.release == '' | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: livesplit-core-*.* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
bind_gen: | |
name: Generate bindings | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Commit | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: hecrj/setup-rust-action@v2 | |
- name: Generate bindings | |
run: | | |
cd capi/bind_gen | |
cargo run | |
cd ../.. | |
clippy: | |
name: Check clippy lints | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Commit | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: hecrj/setup-rust-action@v2 | |
with: | |
components: clippy | |
- name: Run Clippy | |
run: cargo clippy --all-features | |
format: | |
name: Check formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Commit | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: hecrj/setup-rust-action@v2 | |
with: | |
components: rustfmt | |
- name: Run cargo fmt | |
run: cargo fmt -- --check || true | |
bench: | |
name: Run benchmarks | |
runs-on: ubuntu-latest | |
env: | |
CRITERION_TOKEN: ${{ secrets.CRITERION_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: hecrj/setup-rust-action@v2 | |
- name: Run benchmarks | |
run: | | |
# run benchmarks and save baseline to "criterion.dev.temp" | |
cargo bench --all-features -- --verbose --noplot --save-baseline criterion.dev.temp | |
# # set the path to the file to upload to criterion.dev | |
# echo "CRITERION_FILE_PATH=$(find ./target/criterion/ -name raw.csv)" >> $GITHUB_ENV | |
# - name: Upload benchmarks | |
# run: | | |
# # upload the file | |
# curl -F 'raw.csv=@${{ env.CRITERION_FILE_PATH }}' \ | |
# 'https://api.criterion.dev/v1/${{ github.repository }}/measurements?token=${{ secrets.CRITERION_TOKEN }}&commit=${{ github.sha }}' | |
docs: | |
name: Generate documentation | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Use Node 10 | |
uses: actions/setup-node@v1 | |
with: | |
node-version: '10.x' | |
- name: Build TypeScript documentation | |
run: | | |
cd capi/js | |
make docs | |
cd ../.. | |
- name: Upload documentation files | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "GitHub Action" | |
git clone -q "https://github.com/LiveSplit/livesplit-core-docs" | |
cd livesplit-core-docs | |
rm -r * | |
mv ../docs/* . | |
git add . | |
git commit --amend -m "Update documentation" | |
git push --force https://action:${{ secrets.LIVESPLIT_CORE_DOCS_UPLOAD }}@github.com/LiveSplit/livesplit-core-docs.git |