131 lines
3.6 KiB
YAML
131 lines
3.6 KiB
YAML
name: Build and Test
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths-ignore:
|
|
- '**.md'
|
|
pull_request:
|
|
paths-ignore:
|
|
- '**.md'
|
|
|
|
jobs:
|
|
build: # make sure build/ci work properly
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- run: |
|
|
npm install
|
|
|
|
- run: |
|
|
npm run all
|
|
|
|
test: # make sure the action works on a clean machine without building
|
|
strategy:
|
|
matrix:
|
|
# os: [ ubuntu-latest, windows-latest, macos-latest ]
|
|
os: [ ubuntu-latest ] # only test on ubuntu for now
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Replace in Files - replace string
|
|
uses: ./
|
|
with:
|
|
search-text: '@VERSION@'
|
|
files: '**/*.txt'
|
|
replacement-text: '1.0.2'
|
|
exclude: '**/*.check.txt'
|
|
max-parallelism: '1'
|
|
|
|
- name: Replace in Files - replace using special characters
|
|
uses: ./
|
|
with:
|
|
search-text: '{0}'
|
|
files: '**/*.txt'
|
|
replacement-text: 'world'
|
|
exclude: '**/*.check.txt'
|
|
|
|
- name: Replace in Files - replace using environment variable
|
|
uses: ./
|
|
with:
|
|
search-text: '_ENV_'
|
|
files: '**/*.txt'
|
|
replacement-text: ${{ env.REPLACEMENT }}
|
|
exclude: '**/*.check.txt'
|
|
env:
|
|
REPLACEMENT: environment
|
|
|
|
- name: Replace in Files - pattern finds only one file
|
|
uses: ./
|
|
with:
|
|
search-text: '23'
|
|
files: '**/test2.txt'
|
|
replacement-text: '42'
|
|
exclude: '**/*.check.txt'
|
|
|
|
- name: Replace in Files - single file
|
|
uses: ./
|
|
with:
|
|
search-text: 'false'
|
|
files: 'test-files/test2.txt'
|
|
replacement-text: 'true'
|
|
exclude: '**/*.check.txt'
|
|
|
|
- name: Replace in Files - no files matching pattern
|
|
uses: ./
|
|
with:
|
|
search-text: 'foo'
|
|
files: '**/*.invalid'
|
|
replacement-text: 'bar'
|
|
exclude: '**/*.check.txt'
|
|
|
|
- name: Replace in Files - error on invalid encoding
|
|
uses: ./
|
|
continue-on-error: true
|
|
with:
|
|
search-text: 'foo'
|
|
files: '**/*.txt'
|
|
replacement-text: 'bar'
|
|
encoding: 'invalid'
|
|
exclude: '**/*.check.txt'
|
|
|
|
- name: Replace in Files - error on invalid max-parallelism (invalid number)
|
|
uses: ./
|
|
continue-on-error: true
|
|
with:
|
|
search-text: 'foo'
|
|
files: '**/*.txt'
|
|
replacement-text: 'bar'
|
|
exclude: '**/*.check.txt'
|
|
max-parallelism: '-1'
|
|
|
|
- name: Replace in Files - error on invalid max-parallelism (invalid string)
|
|
uses: ./
|
|
continue-on-error: true
|
|
with:
|
|
search-text: 'foo'
|
|
files: '**/*.txt'
|
|
replacement-text: 'bar'
|
|
exclude: '**/*.check.txt'
|
|
max-parallelism: 'invalid'
|
|
|
|
- name: Verify changes
|
|
run: |
|
|
echo " > Actual - test1.txt"
|
|
cat test-files/test1.txt
|
|
echo "=================="
|
|
echo " > Expected - test1.txt"
|
|
cat test-files/test1.check.txt
|
|
echo "=================="
|
|
echo " > Actual - test2.txt"
|
|
cat test-files/test2.txt
|
|
echo "=================="
|
|
echo " > Expected - test2.txt"
|
|
cat test-files/test2.check.txt
|
|
echo "=================="
|
|
diff test-files/test1.txt test-files/test1.check.txt >diff1.txt
|
|
diff test-files/test2.txt test-files/test2.check.txt >diff2.txt
|