diff --git a/.github/workflows/jobs.yaml b/.github/workflows/jobs.yaml index 2b7401acb..c38f46d1b 100644 --- a/.github/workflows/jobs.yaml +++ b/.github/workflows/jobs.yaml @@ -1151,6 +1151,200 @@ jobs: run: | make cleanup-permissions + all-permissions-A: + name: Permissions Tests Part A + needs: + - lint-job + - no-warnings-and-make-assets + - reuse-golang-dependencies + - vulnerable-dependencies-checks + - semgrep-static-code-analysis + runs-on: [ self-hosted, vm-docker, xvfb-run ] + strategy: + matrix: + go-version: [ 1.18.x ] + os: [ ubuntu-latest ] + steps: + - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Read .nvmrc + id: node_version + run: echo ::set-output name=NVMRC::$(cat .nvmrc) + + - uses: actions/setup-node@v2 + with: + node-version: ${{ env.NVMRC }} + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + id: yarn-cache + name: Yarn Cache + with: + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + ./portal-ui/node_modules/ + ./portal-ui/build/ + key: ${{ runner.os }}-yarn-${{ hashFiles('./portal-ui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - uses: actions/cache@v2 + id: assets-cache + name: Assets Cache + with: + path: | + ./portal-ui/build/ + key: ${{ runner.os }}-assets-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-assets- + + - uses: actions/cache@v2 + name: Go Mod Cache + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ github.run_id }} + + - name: Build Console on ${{ matrix.os }} + env: + GO111MODULE: on + GOOS: linux + run: | + make console + + - name: Install dependencies + env: + GO111MODULE: on + GOOS: linux + run: | + cd portal-ui; yarn install; + + - name: clean-previous-containers-if-any + run: | + docker stop minio || true; + docker container prune -f || true; + + - name: Start Console, front-end app and initialize users/policies + run: | + (./console server) & (make initialize-permissions) + + - name: Run TestCafe Tests + uses: DevExpress/testcafe-action@latest + with: + args: '"chrome --headless --no-sandbox" portal-ui/tests/permissions-A/ --skip-js-errors -c 3' + + - name: Clean up users & policies + run: | + make cleanup-permissions + + all-permissions-B: + name: Permissions Tests Part B + needs: + - lint-job + - no-warnings-and-make-assets + - reuse-golang-dependencies + - vulnerable-dependencies-checks + - semgrep-static-code-analysis + runs-on: [ self-hosted, vm-docker, xvfb-run ] + strategy: + matrix: + go-version: [ 1.18.x ] + os: [ ubuntu-latest ] + steps: + - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Read .nvmrc + id: node_version + run: echo ::set-output name=NVMRC::$(cat .nvmrc) + + - uses: actions/setup-node@v2 + with: + node-version: ${{ env.NVMRC }} + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + id: yarn-cache + name: Yarn Cache + with: + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + ./portal-ui/node_modules/ + ./portal-ui/build/ + key: ${{ runner.os }}-yarn-${{ hashFiles('./portal-ui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - uses: actions/cache@v2 + id: assets-cache + name: Assets Cache + with: + path: | + ./portal-ui/build/ + key: ${{ runner.os }}-assets-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-assets- + + - uses: actions/cache@v2 + name: Go Mod Cache + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ github.run_id }} + + - name: Build Console on ${{ matrix.os }} + env: + GO111MODULE: on + GOOS: linux + run: | + make console + + - name: Install dependencies + env: + GO111MODULE: on + GOOS: linux + run: | + cd portal-ui; yarn install; + + - name: clean-previous-containers-if-any + run: | + docker stop minio || true; + docker container prune -f || true; + + - name: Start Console, front-end app and initialize users/policies + run: | + (./console server) & (make initialize-permissions) + + - name: Run TestCafe Tests + uses: DevExpress/testcafe-action@latest + with: + args: '"chrome --headless --no-sandbox" portal-ui/tests/permissions-B/ --skip-js-errors -c 3' + + - name: Clean up users & policies + run: | + make cleanup-permissions + all-operator-tests: name: Operator UI Tests needs: diff --git a/portal-ui/tests/permissions-1/iamPolicies.ts b/portal-ui/tests/permissions-A/iamPolicies.ts similarity index 100% rename from portal-ui/tests/permissions-1/iamPolicies.ts rename to portal-ui/tests/permissions-A/iamPolicies.ts diff --git a/portal-ui/tests/permissions-1/bucketWritePrefixOnly.ts b/portal-ui/tests/permissions-B/bucketWritePrefixOnly.ts similarity index 100% rename from portal-ui/tests/permissions-1/bucketWritePrefixOnly.ts rename to portal-ui/tests/permissions-B/bucketWritePrefixOnly.ts