Improve Permissions Tests Part 1 (#2359)
### Objective: To fix `Permissions Tests Part 1 (1.18.x, ubuntu-latest)` ### Strategy: To make test more reliable, it has been isolated in folder `A` and `B`, letting other tests to properly pass. And if new failure is observed, it will be either in folder `A` or `B` for `iamPolicies.ts` and `bucketWritePrefixOnly.ts` respectively. ### Root cause: `iamPolicies.ts` and `bucketWritePrefixOnly.ts` are not stable tests when running together with other tests, some sort of racing condition that can be improved by isolating them. ### All tests are passing, same code: <img width="435" alt="Screen Shot 2022-10-05 at 5 48 54 PM" src="https://user-images.githubusercontent.com/6667358/194170348-cdba42ca-08a0-4db4-9543-f2f682ba6603.png">
This commit is contained in:
committed by
GitHub
parent
a01b1ffe8c
commit
de82a056e6
194
.github/workflows/jobs.yaml
vendored
194
.github/workflows/jobs.yaml
vendored
@@ -1151,6 +1151,200 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make cleanup-permissions
|
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:
|
all-operator-tests:
|
||||||
name: Operator UI Tests
|
name: Operator UI Tests
|
||||||
needs:
|
needs:
|
||||||
|
|||||||
Reference in New Issue
Block a user