name: GitHub CI on: push: paths: - ".github/workflows/build.yml" - "build/**" - "src/**" - "!**/*.md" branches: - master pull_request: paths: - "build/**" - "src/**" - "!**/*.md" branches: - master # Keep this in sync with the other *.yml files env: CI_REQ_DOTNET_SDK_VER: 5.0.100 COVERAGE_FILENAME: coverage.net5.0.info CI_NODE_MIN_VER: 12.0.0 RUSTFLAGS: -D warnings MACOSX_DEPLOYMENT_TARGET: 10.12 jobs: ############################################################################# ############################################################################# ############################################################################# build-dotnet: name: C# (${{matrix.os}}) runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest] steps: - uses: actions/checkout@v2 - uses: actions/setup-dotnet@v1 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@v2 with: name: nupkg path: src/csharp/Intel/Iced/bin/Release/*.*nupkg if-no-files-found: error - uses: actions/upload-artifact@v2 with: name: coverage.info path: src/csharp/Intel/Iced.UnitTests/${{env.COVERAGE_FILENAME}} if-no-files-found: error - name: Upload coverage report if: github.ref == 'refs/heads/master' shell: bash continue-on-error: true run: | curl --proto '=https' --tlsv1.2 -sSf https://codecov.io/bash | bash -s -- -f "src/csharp/Intel/Iced.UnitTests/${{env.COVERAGE_FILENAME}}" env: CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} ############################################################################# ############################################################################# ############################################################################# build-rust: name: Rust (${{matrix.os}}) runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest] steps: - uses: actions/checkout@v2 - name: Install Rust shell: bash run: bash build/ci-install-rust.sh - uses: actions/setup-dotnet@v1 with: dotnet-version: ${{env.CI_REQ_DOTNET_SDK_VER}} - name: Build and test shell: bash run: ./build/build-rust --no-set-rustflags --no-tests --test-current --test-msrv --test-no_std ############################################################################# ############################################################################# ############################################################################# build-rust-js-wasm: name: JavaScript (${{matrix.os}}) runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest] steps: - uses: actions/checkout@v2 - name: Install Rust shell: bash run: bash build/ci-install-rust.sh - uses: actions/setup-node@v2.1.5 with: node-version: ${{env.CI_NODE_MIN_VER}} - name: Install wasm-pack shell: bash run: npm install -g wasm-pack - name: Build and test shell: bash run: ./build/build-js --no-set-rustflags --quick-check ############################################################################# ############################################################################# ############################################################################# build-rust-python-linux-x64: name: Python (${{matrix.os}}) x64 runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest] steps: - uses: actions/checkout@v2 - name: Install Rust shell: bash run: bash build/ci-install-rust.sh - uses: actions/setup-python@v2 with: python-version: 3.6 - name: Install Python tools shell: bash run: | python --version 2>&1 | grep "Python 3\.6" 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