name: CI on: push: branches: [ trunk ] pull_request: branches: [ trunk ] env: BUNDLE_PATH: /tmp/.bundle GEM_HOME: /tmp/.bundle GEM_PATH: /tmp/.bundle TERM: xterm256 jobs: rustfmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: toolchain: stable components: rustfmt override: true profile: minimal - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: toolchain: 1.63.0 components: clippy override: true profile: minimal - run: cargo clippy --all --all-features -- -D warnings lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - run: | sudo apt-get install -y shellcheck ./script/lints/lint_fixtures.sh ./script/lints/lint_scripts.sh test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-latest target: native - os: ubuntu-20.04 target: native - os: macos-latest target: native - os: ubuntu-20.04 target: aarch64-unknown-linux-gnu steps: - uses: actions/checkout@v2 with: submodules: true - if: runner.os == 'macOS' uses: actions-rs/toolchain@v1 with: toolchain: 1.63.0 target: aarch64-apple-darwin default: true override: true profile: minimal - if: runner.os != 'macOS' uses: actions-rs/toolchain@v1 with: toolchain: 1.63.0 override: true profile: minimal target: aarch64-unknown-linux-gnu - uses: actions/cache@v2 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-${{ matrix.target }}-cargo-2-${{ hashFiles('**/Cargo.lock') }} - uses: actions/cache@v2 with: path: | librubyfmt/ruby_checkout key: ${{ runner.os }}-${{ matrix.target }}-ruby-v1-${{ hashFiles('.git/modules/librubyfmt/ruby_checkout/HEAD') }} - if: runner.os == 'macOS' run: | brew install automake bison echo "/usr/local/opt/bison/bin:$PATH" >> $GITHUB_PATH - run: ./script/test.sh env: TARGET: ${{ matrix.target }} - uses: actions/upload-artifact@v3 with: name: rubyfmt-artifact-${{ matrix.os }}-${{ matrix.target }} path: target/${{ matrix.target == 'native' && 'release' || format('{0}/release', matrix.target) }}/rubyfmt-main