Bitbucket pipelines composer patch fails

  bitbucket-pipelines, composer-php, docker, php

I have a very simple pipelines config so far, I am just trying to get the app to build before I look to adding anything else to it.
But, even in its simple state, I can’t get composer to successfully patch a file.
The entire composer install works flawlessly until this point.

  - Applying patches for drupal/core
    https://www.drupal.org/files/issues/2021-03-05/3007386-language-negotiator-weight-12.patch (Language negotiation weight)
   Could not apply patch! Skipping. The error was: Cannot apply patch https://www.drupal.org/files/issues/2021-03-05/3007386-language-negotiator-weight-12.patch
                                                                                                                                                
  [Exception]                                                                                                                                   
  Cannot apply patch Language negotiation weight (https://www.drupal.org/files/issues/2021-03-05/3007386-language-negotiator-weight-12.patch)!  

After it started failing I added some debug to the config including trying to cat the file that was to be patched, but it is not there.

+ cat docroot/core/modules/language/src/LanguageNegotiator.php
cat: can't open 'docroot/core/modules/language/src/LanguageNegotiator.php': No such file or directory

This is the composer patch chunk

  "extra": {
    "patches": {
      "drupal/core": {
        "Language negotiation weight": "https://www.drupal.org/files/issues/2018-10-17/3007386-language-negotiator-weight-2.patch"
      }
    },

This is the pipeline yml

# Template PHP Build

# This template allows you to validate your PHP application.
# The workflow allows running tests and code linting on the default branch.

image: php:7.3-alpine

pipelines:
  default:
    - parallel:
        - step:
            name: Prepare environment
            script:
              - /sbin/apk update
              - /sbin/apk add git
              - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
              - docker-php-ext-install mysqli pdo pdo_mysql
              - /sbin/apk add libpng-dev
              - docker-php-ext-install mbstring
              - docker-php-ext-install gd
              - pwd
              - ls -la
              - cat docroot/core/modules/language/src/LanguageNegotiator.php
              - /usr/local/bin/composer install
            caches:
              - composer

I’m wondering if I just need to change directories or similar? Thanks in advance.

Source: Docker Questions

LEAVE A COMMENT