Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Did you forget to run "composer require symfony/asset"? Unknown function "asset". #41672

Closed
@loevgaard

Description

@loevgaard

Symfony version(s) affected: 5.3.0

Description
This is a very hard issue to describe so I will just try to tell what I have found myself. I started getting this exception in my Behat tests running on GitHub Actions: Did you forget to run "composer require symfony/asset"? Unknown function "asset". and that started me down a path of trying to reproduce it on my local machine. But I have given up on that. The last thing I did was to output composer show on both my local machine and GitHub Actions and they were an exact match. None the less I only get the exception when running my GitHub Actions workflow. I have added the workflow below in additional context.

What I figured out is that the workflow succeeds if I add this to my composer.json:

"symfony/framework-bundle": "~5.2.0",
"symfony/asset": "~5.2.0",
"symfony/twig-bridge": "~5.2.0",
"symfony/twig-bundle": "~5.2.0"

From the log on GitHub Actions that the version installed of these packages is 5.2.10 so I started comparing 5.3.0 with 5.2.10 for these packages and I can see that something changes with regards to assets, but I am not enough into these components to actually pinpoint the place where it goes wrong.

Additional context
This is the workflow for the job that fails:

integration-tests:
    name: "Integration tests"

    runs-on: "ubuntu-latest"

    strategy:
        matrix:
            php-version:
                - "7.4"

            dependencies:
                - "highest"

    steps:
        -   name: "Start MySQL"
            run: "sudo /etc/init.d/mysql start"

        -   name: "Checkout"
            uses: "actions/checkout@v2"

        -   name: "Setup PHP, with composer and extensions"
            uses: "shivammathur/setup-php@v2"
            with:
                php-version: "${{ matrix.php-version }}"
                extensions: "${{ env.PHP_EXTENSIONS }}"
                coverage: "none"
                tools: "symfony"
                
        -   name: "Setup node"
            uses: "actions/setup-node@v2"
            with:
                node-version: "10.x"

        -   name: "Install composer dependencies"
            uses: "ramsey/composer-install@v1"
            with:
                dependency-versions: "${{ matrix.dependencies }}"

        -   name: "Lint container"
            run: "(cd tests/Application && bin/console lint:container) || true"

        -   name: "Create database"
            run: "(cd tests/Application && bin/console doctrine:database:create -vvv)"

        -   name: "Create database schema"
            run: "(cd tests/Application && bin/console doctrine:schema:create -vvv)"

        -   name: "Validate Doctrine mapping"
            run: "(cd tests/Application && bin/console doctrine:schema:validate -vvv)"
            
        -   name: "Get Yarn cache directory"
            id: "yarn-cache"
            run: "echo \"::set-output name=dir::$(yarn cache dir)\""

        -   name: "Cache Yarn"
            uses: "actions/cache@v2"
            with:
                path: "${{ steps.yarn-cache.outputs.dir }}"
                key: "yarn-${{ hashFiles('**/package.json **/yarn.lock') }}"
                restore-keys: "yarn-"
        
        -   name: "Install JS dependencies"
            run: "(cd tests/Application && yarn install)"
            
        -   name: "Install assets"
            run: "(cd tests/Application && bin/console assets:install public -vvv)"
                    
        -   name: "Build assets"
            run: "(cd tests/Application && yarn build)"

        -   name: "Output PHP version for Symfony CLI"
            run: "php -v | head -n 1 | awk '{ print $2 }' > .php-version"
            
        -   name: "Install certificates"
            run: "symfony server:ca:install"
            
        -   name: "Run Chrome Headless"
            run: "google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 > /dev/null 2>&1 &"
            
        -   name: "Wait for Chrome to start"
            run: |
                until curl -s http://127.0.0.1:9222/json/version | grep "Browser" > /dev/null 2>&1
                do
                    sleep 1
                done

        -   name: "Run webserver"
            run: "(cd tests/Application && symfony server:start --port=8080 --dir=public --daemon)"
            
        -   name: "Wait for webserver to start"
            run: |
                until symfony server:list | grep /public > /dev/null 2>&1
                do
                    sleep 1
                done

        -   name: "Run behat"
            run: "vendor/bin/behat --colors --strict -vvv --no-interaction || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun"

        -   name: "Upload Behat logs"
            uses: "actions/upload-artifact@v2"
            if: "failure()"
            with:
                name: "Behat logs"
                path: "etc/build/"
                if-no-files-found: "ignore"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions