From 68f15087131e5595fd8359b0f23f36e008969689 Mon Sep 17 00:00:00 2001 From: Sanyi Date: Mon, 29 Jul 2024 04:28:46 +0200 Subject: [PATCH] EMA-150 auto test memory optimizing --- .github/workflows/tests.yml | 73 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c2cbf98..9423f8a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,27 +7,17 @@ on: - "*" jobs: - unit-tests: + build-image: runs-on: github-actions-runner-emarsys permissions: contents: "read" - strategy: - max-parallel: 1 - fail-fast: false - matrix: - magento-versions: - ["2.3.5ce", "2.4.0ce", "2.4.2ce", "2.4.4ce", "2.4.6ce"] steps: - - name: Extract branch name - shell: bash - run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT - id: extract_branch - name: Checkout code shell: bash run: | sudo apt-get update sudo apt-get install git -y - git clone --branch ${{ steps.extract_branch.outputs.branch }} https://github.com/emartech/magento2-extension.git + git clone https://github.com/emartech/magento2-extension.git - name: Login to GitLab uses: docker/login-action@v3 with: @@ -55,17 +45,47 @@ jobs: DOCKER_BUILDKIT=1 docker build -f testv2/tools/docker/Dockerfile-mage-node --build-arg NPM_TOKEN=$NPM_TOKEN -t "mage_node" . env: NPM_TOKEN: ${{ secrets.GITLAB_TOKEN }} + + unit-tests: + runs-on: github-actions-runner-emarsys + needs: build-image + permissions: + contents: "read" + strategy: + max-parallel: 1 + fail-fast: false + matrix: + magento-versions: + ["2.3.5ce", "2.4.0ce", "2.4.2ce", "2.4.4ce", "2.4.6ce"] + steps: + - name: Extract branch name + shell: bash + run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT + id: extract_branch + - name: Checkout code + shell: bash + run: | + sudo apt-get update + sudo apt-get install git -y + git clone --branch ${{ steps.extract_branch.outputs.branch }} https://github.com/emartech/magento2-extension.git + - name: Login to GitLab + uses: docker/login-action@v3 + with: + registry: ${{ vars.REGISTRY_URL }} + username: ${{ secrets.GITLAB_USER }} + password: ${{ secrets.GITLAB_TOKEN }} - name: Run unittest shell: bash run: | cd magento2-extension - bash dev/testv2/tools/scripts/run-unit.sh + docker run --rm -e NPM_TOKEN=${{ secrets.GITLAB_TOKEN }} -e VERSION=${{ matrix.magento-versions }} mage_node bash dev/testv2/tools/scripts/run-unit.sh env: VERSION: ${{ matrix.magento-versions }} NPM_TOKEN: ${{ secrets.GITLAB_TOKEN }} + e2e-tests: runs-on: github-actions-runner-emarsys - needs: unit-tests + needs: [build-image, unit-tests] permissions: contents: "read" strategy: @@ -91,32 +111,11 @@ jobs: registry: ${{ vars.REGISTRY_URL }} username: ${{ secrets.GITLAB_USER }} password: ${{ secrets.GITLAB_TOKEN }} - - name: Install system tools - shell: bash - run: | - sudo apt-get update - sudo apt-get install ca-certificates curl gnupg -y - sudo install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg - sudo chmod a+r /etc/apt/keyrings/docker.gpg - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ - $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - sudo apt-get update - sudo apt-get install docker-compose-plugin docker-buildx-plugin -y - - name: Build mage_node image - shell: bash - run: | - cd magento2-extension/dev - DOCKER_BUILDKIT=1 docker build -f testv2/tools/docker/Dockerfile-mage-node --build-arg NPM_TOKEN=$NPM_TOKEN -t "mage_node" . - env: - NPM_TOKEN: ${{ secrets.GITLAB_TOKEN }} - - name: Run e2stest + - name: Run e2etest shell: bash run: | cd magento2-extension - bash dev/testv2/tools/scripts/run-e2e.sh + docker run --rm -e NPM_TOKEN=${{ secrets.GITLAB_TOKEN }} -e VERSION=${{ matrix.magento-versions }} mage_node bash dev/testv2/tools/scripts/run-e2e.sh env: VERSION: ${{ matrix.magento-versions }} NPM_TOKEN: ${{ secrets.GITLAB_TOKEN }}