Skip to content

CI

CI #30

Workflow file for this run

on:
push:
branches:
- master
pull_request:
branches:
- master
schedule: # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onschedule
- cron: "0 0 * * 0" # at midnight of each sunday
name: CI
env:
# screw ya
CI_RUST_TOOLCHAIN: nightly
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.CI_RUST_TOOLCHAIN }}
override: true
- uses: actions-rs/cargo@v1
with:
command: check
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.CI_RUST_TOOLCHAIN }}
override: true
- uses: actions-rs/cargo@v1
with:
command: test
args: --all-features -- --test-threads=1
fmt:
name: Fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.CI_RUST_TOOLCHAIN }}
override: true
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.CI_RUST_TOOLCHAIN }}
override: true
- run: rustup component add clippy
- uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --all-features -- -D warnings
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.CI_RUST_TOOLCHAIN }}
override: true
- name: Check out mint code
uses: actions/checkout@v2
with:
repository: minio/mint
ref: ad883407695260e09ddaf309892d9f870e61bc29
path: ./mint
- name: Select test groups
run: |
pushd ./mint
enabled_test_groups=("mc" "s3cmd")
mkdir tmp_build
mkdir tmp_run_core
for test_group_name in ${enabled_test_groups[@]}
do
mv ./build/$test_group_name tmp_build/
mv ./run/core/$test_group_name tmp_run_core/
done
rm -rf build
rm -rf run/core
mv tmp_build build
mv tmp_run_core run/core
rm remove-packages.list
touch remove-packages.list
sed -i 's/mc.${MC_VERSION}/archive\/mc.${MC_VERSION}/' build/mc/install.sh
# lock mc version
sed -i 's/^MC_VERSION.*/MC_VERSION=RELEASE.2022-03-09T02-08-36Z/g' build/mc/install.sh
# delete tests for minio
cat >> build/mc/install.sh << EOF
sed -i '/^\s*test_rb\s*$/d' "\$test_run_dir/functional-tests.sh"
EOF
popd
- name: Build mint
run: |
pushd ./mint
docker build -t minio/mint . -f Dockerfile
popd
- name: Build s3-server
uses: actions-rs/cargo@v1
with:
command: build
args: --features binary --bins --release
- name: Create test bucket and capture keys
run: |
mkdir -p data
output=$(cargo run --bin s3-sec create-bucket s3cmd 0 --ci)
echo "ACCESS_KEY=$(echo "$output" | sed -n '1p')" >> $GITHUB_ENV
echo "SECRET_KEY=$(echo "$output" | sed -n '2p')" >> $GITHUB_ENV
- name: Run mint
run: |
RUST_LOG=info ./scripts/s3-server.sh storage --release test 1>/dev/null &
sleep 5 # Give the server some time to start
ACCESS_KEY=${{ env.ACCESS_KEY }} SECRET_KEY=${{ env.SECRET_KEY }} ./scripts/mint.sh