name: Test (push) on: push: branches: - "!v*" - "**" env: CARGO_TERM_COLOR: always jobs: tests-pass: name: Tier 1 Tests runs-on: ubuntu-latest needs: - test_64bit - test_32bit steps: - name: Finish Tier 1 Tests run: exit 0 test_64bit: name: Test (64-bit) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] include: - os: ubuntu-latest rust: x86_64-unknown-linux-gnu - os: macos-latest rust: x86_64-apple-darwin - os: windows-latest rust: x86_64-pc-windows-msvc steps: - name: Checkout source code uses: actions/checkout@v2 with: fetch-depth: 2 - name: Install GNU tar run: | brew install gnu-tar echo "/usr/local/opt/gnu-tar/libexec/gnubin" >> $GITHUB_PATH if: runner.os == 'macOS' - name: Install perl modules uses: perl-actions/install-with-cpanm@v1 with: install: "HTML::Entities" - name: Setup environment run: | chmod +x ci/setvars.sh ci/setvars.sh - name: Restore cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git ./target key: ${{ matrix.rust }}-rscache-${{ hashFiles('Cargo.lock') }} - name: Install Rust run: | rustup default stable rustup target add ${{ matrix.rust }} - name: Run Tests run: make test env: RUST_BACKTRACE: 1 TARGET: ${{ matrix.rust }} - name: Archive artifacts run: | mkdir dist cargo build --target ${{ matrix.rust }} mv target/${{ matrix.rust }}/debug/skyd target/${{ matrix.rust }}/debug/skysh target/${{ matrix.rust }}/debug/sky-bench dist if: runner.os != 'Windows' - name: Archive artifacts shell: cmd run: | cargo build --target ${{ matrix.rust }} rm -rf dist mkdir dist move target\${{ matrix.rust }}\debug\*.exe dist env: RUSTFLAGS: -Ctarget-feature=+crt-static if: runner.os == 'Windows' - name: Save artifacts uses: actions/upload-artifact@v2 with: name: ${{ github.sha }}-${{ matrix.rust }}-builds.zip path: dist test_32bit: name: Test (32-bit) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] include: - os: ubuntu-latest rust: i686-unknown-linux-gnu - os: windows-latest rust: i686-pc-windows-msvc steps: - name: Checkout source code uses: actions/checkout@v2 with: fetch-depth: 2 - name: Setup environment run: | chmod +x ci/setvars.sh ci/setvars.sh - name: Install perl modules uses: perl-actions/install-with-cpanm@v1 with: install: "HTML::Entities" - name: Restore cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git ./target key: ${{ matrix.rust }}-rscache-${{ hashFiles('Cargo.lock') }} - name: Install Rust run: | rustup default stable rustup target add ${{ matrix.rust }} - name: Run Tests run: make test env: RUST_BACKTRACE: 1 TARGET: ${{ matrix.rust }} - name: Archive artifacts run: | mkdir dist cargo build --target ${{ matrix.rust }} mv target/${{ matrix.rust }}/debug/skyd target/${{ matrix.rust }}/debug/skysh target/${{ matrix.rust }}/debug/sky-bench dist if: runner.os == 'Linux' - name: Archive artifacts shell: cmd run: | cargo build --target ${{ matrix.rust }} rm -rf dist mkdir dist move target\${{ matrix.rust }}\debug\*.exe dist env: RUSTFLAGS: -Ctarget-feature=+crt-static if: runner.os == 'Windows' - name: Save artifacts uses: actions/upload-artifact@v2 with: name: ${{ github.sha }}-${{ matrix.rust }}-builds.zip path: dist test_musl64: name: Test MUSL x86_64 (Tier 2) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] include: - os: ubuntu-latest rust: x86_64-unknown-linux-musl steps: - name: Checkout source code uses: actions/checkout@v2 with: fetch-depth: 2 - name: Install perl modules uses: perl-actions/install-with-cpanm@v1 with: install: "HTML::Entities" - name: Setup environment run: | chmod +x ci/setvars.sh ci/setvars.sh - name: Restore cache uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git ./target key: ${{ matrix.rust }}-rscache-${{ hashFiles('Cargo.lock') }} - name: Install Rust run: | rustup default stable rustup target add ${{ matrix.rust }} - name: Run Tests run: make test env: RUST_BACKTRACE: 1 TARGET: ${{ matrix.rust }} - name: Archive artifacts run: | mkdir dist cargo build --target ${{ matrix.rust }} mv target/${{ matrix.rust }}/debug/skyd target/${{ matrix.rust }}/debug/skysh target/${{ matrix.rust }}/debug/sky-bench dist - name: Save artifacts uses: actions/upload-artifact@v2 with: name: ${{ github.sha }}-${{ matrix.rust }}-builds.zip path: dist