aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/.github/workflows/makefile-escaping.yml
blob: 1e38ff31cf59079b0a5a0d6a4f4ada97f084ac7e (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                     



                    



                           
                          

                      
                                 


                              
                                                                      

                  

             
                  

             
                  
 

                         
                          

                      
                                 


                              
                                                                         







                                                                                                                                                         
 

                      
                          

                      
                                 
                                

                              
                                                                                                                                                                      


                                 
                                                                                                                                                                      


                                     
                                                                                                                                                                      


                                 
                                                         

                                
                                                          

                                     
                                                              
 

                               
                          

                      
                                 








                                                                                                                                 

                              
                                                                                                                                     
        
                          

                                                                         
                         
                                         
                                                                              

                                         
                                                                              
name: Escaping characters in Makefile

on:
  push:
  pull_request:
  workflow_dispatch:

jobs:
  quoting_arguments:
    name: Quoting arguments
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: make test
        run: |
          cd makefile_escaping
          diff <( echo "$expected" ) <( make -f quoting_args.mk test )
    env:
      expected: |-
        Same
        line?
        Same line?
        Same
        line?
        Same line?

  escaping_quotes:
    name: Escaping quotes
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: make test
        run: |
          cd makefile_escaping
          diff <( echo "$expected" ) <( make -f escaping_quotes.mk test )
    env:
      expected: |-
        printf '%s\n' 'Includes '\'' quote'
        Includes ' quote
        bash -c 'printf '\''%s\n'\'' '\''Includes '\''\'\'''\'' quote'\'''
        Includes ' quote
        bash -c 'bash -c '\''printf '\''\'\'''\''%s\n'\''\'\'''\'' '\''\'\'''\''Includes '\''\'\'''\''\'\''\'\'''\'''\''\'\'''\'' quote'\''\'\'''\'''\'''
        Includes ' quote

  shell_output:
    name: Shell output
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: "Includes ' quote"
        run: |
          cd makefile_escaping
          diff <( echo "$expected_includes_quote"     ) <( mkdir -p -- "Includes ' quote"      && cd -- "Includes ' quote"      && make -f ../escaping_shell.mk test )
      - name: 'Maybe a comment #'
        run: |
          cd makefile_escaping
          diff <( echo "$expected_maybe_comment"      ) <( mkdir -p -- 'Maybe a comment #'     && cd -- 'Maybe a comment #'     && make -f ../escaping_shell.mk test )
      - name: 'Variable ${reference}'
        run: |
          cd makefile_escaping
          diff <( echo "$expected_variable_reference" ) <( mkdir -p -- 'Variable ${reference}' && cd -- 'Variable ${reference}' && make -f ../escaping_shell.mk test )
    env:
      expected_includes_quote: |-
        Includes ' quote
        Composite value - Simple value - Includes ' quote
      expected_maybe_comment: |-
        Maybe a comment #
        Composite value - Simple value - Maybe a comment #
      expected_variable_reference: |-
        Variable ${reference}
        Composite value - Simple value - Variable ${reference}

  env_variables:
    name: Environment variables
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: make test w/ default test_var
        run: |
          cd makefile_escaping
          diff <( echo "$expected_default" ) <( make -f escaping_env_vars.mk test )
      - name: make test w/ tricky test_var
        run: |
          cd makefile_escaping
          diff <( echo "$expected_tricky" ) <( test_var="Quote ' "'and variable ${reference}' make -f escaping_env_vars.mk test )
      - name: make test w/ overridden test_var
        run: |
          cd makefile_escaping
          diff <( echo "$expected_overridden" ) <( make -f escaping_env_vars.mk test test_var="Quote ' "'and variable ${reference}' )
    env:
      expected_default: |-
        New simple value in test_var
        Composite value - New simple value - New simple value in test_var
      expected_tricky: |-
        Quote ' and variable ${reference}
        Composite value - New simple value - Quote ' and variable ${reference}
      expected_overridden: |-
        Quote ' and variable ${reference}
        Composite value - New simple value - Quote ' and variable ${reference}