Skip to content

Merge pull request #630 from icedland/javadeps1 #1161

Merge pull request #630 from icedland/javadeps1

Merge pull request #630 from icedland/javadeps1 #1161

Workflow file for this run

name: GitHub CI
on:
push:
paths:
- ".github/workflows/build.yml"
- "build/**"
- "src/**"
- "!**/*.md"
branches:
- master
pull_request:
paths:
- ".github/workflows/build.yml"
- "build/**"
- "src/**"
- "!**/*.md"
branches:
- master
# Keep this in sync with the other *.yml files
env:
CI_REQ_DOTNET_SDK_VER: '8.0.x'
CI_NODE_MIN_VER: 'latest'
RUSTFLAGS: '-D warnings'
MACOSX_DEPLOYMENT_TARGET: '10.12'
JAVA_DISTRIBUTION: 'temurin'
JAVA_VERSION: '8'
jobs:
#############################################################################
#############################################################################
#############################################################################
build-dotnet:
name: C# (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{env.CI_REQ_DOTNET_SDK_VER}}
- name: Build and test
shell: bash
run: ./build/build-dotnet --quick-check
- uses: actions/upload-artifact@v4
with:
name: nupkg
path: src/csharp/Intel/Iced/bin/Release/*.*nupkg
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: coverage.info
path: src/csharp/Intel/Iced.UnitTests/coverage.info
if-no-files-found: error
- name: Upload coverage report
if: github.ref == 'refs/heads/master'
shell: bash
continue-on-error: true
run: |
# https://docs.codecov.com/docs/codecov-uploader
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import
curl -Os https://uploader.codecov.io/latest/linux/codecov
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
shasum -a 256 -c codecov.SHA256SUM
chmod +x codecov
./codecov -t "${{secrets.CODECOV_TOKEN}}" -f "src/csharp/Intel/Iced.UnitTests/coverage.info"
#############################################################################
#############################################################################
#############################################################################
build-java:
name: Java (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
- name: Build and test
shell: bash
run: ./build/build-java --quick-check
- uses: actions/upload-artifact@v4
with:
name: java
path: src/java/iced-x86/target/iced-x86*
if-no-files-found: error
#############################################################################
#############################################################################
#############################################################################
build-rust:
name: Rust (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
shell: bash
run: bash build/ci-install-rust.sh
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{env.CI_REQ_DOTNET_SDK_VER}}
- name: Install kcov
shell: bash
run: |
sudo apt-get update
sudo apt-get install kcov
- name: Build and test
shell: bash
run: ./build/build-rust --no-set-rustflags --no-tests --test-current --test-msrv --test-no_std --coverage
- uses: actions/upload-artifact@v4
with:
name: rust-coverage
path: cov-out/rust/merged/
if-no-files-found: error
- name: Upload coverage report
if: github.ref == 'refs/heads/master'
shell: bash
continue-on-error: true
run: |
# https://docs.codecov.com/docs/codecov-uploader
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import
curl -Os https://uploader.codecov.io/latest/linux/codecov
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
shasum -a 256 -c codecov.SHA256SUM
chmod +x codecov
./codecov -t "${{secrets.CODECOV_TOKEN}}" -f "cov-out/rust/merged/kcov-merged/cobertura.xml"
#############################################################################
#############################################################################
#############################################################################
build-rust-js-wasm:
name: JavaScript (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
shell: bash
run: bash build/ci-install-rust.sh
- uses: actions/setup-node@v4
with:
node-version: ${{env.CI_NODE_MIN_VER}}
- name: Install wasm-pack
shell: bash
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Build and test
shell: bash
run: ./build/build-js --no-set-rustflags --quick-check
- uses: actions/upload-artifact@v4
with:
name: npm
path: src/rust/iced-x86-js/pkg/release/iced-x86-*.tgz
if-no-files-found: error
#############################################################################
#############################################################################
#############################################################################
build-rust-python-linux-x64:
name: Python (${{matrix.os}}) x64
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
shell: bash
run: bash build/ci-install-rust.sh
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install Python tools
shell: bash
run: |
python --version 2>&1 | grep 'Python 3\.8'
python -m pip install -r src/rust/iced-x86-py/requirements-dev.txt
- name: Build and test
shell: bash
run: ./build/build-python --no-set-rustflags --python python
#############################################################################
#############################################################################
#############################################################################
build-rust-lua:
name: Lua (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
shell: bash
run: bash build/ci-install-rust.sh
- name: Install StyLua
shell: bash
run: |
wget https://github.com/JohnnyMorganz/StyLua/releases/download/v0.15.3/stylua-linux-x86_64.zip
mkdir /tmp/bin
unzip stylua-*.zip -d /tmp/bin
- name: Install Lua and luarocks
shell: bash
run: |
sudo apt-get install -y lua5.1 lua5.2 lua5.3 lua5.4 liblua5.1-0-dev liblua5.2-dev liblua5.3-dev liblua5.4-dev luarocks
sudo luarocks --lua-version 5.1 install busted
sudo luarocks --lua-version 5.2 install busted
sudo luarocks --lua-version 5.3 install busted
sudo luarocks --lua-version 5.4 install busted
- name: Build and test
shell: bash
run: |
export PATH=$PATH:/tmp/bin
./build/build-lua --no-set-rustflags --quick-check