A0-4268: Support for chain-bootstrapper in actions (#49) #207
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Test replace-string action | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
main: | |
name: Test replace-string action | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Replace string | |
id: str | |
uses: ./replace-string | |
with: | |
string: 'Apple Redberry' | |
replace-regex: 'Redberry' | |
flags: 'g' | |
replace-with: 'Apricot' | |
- name: Check replaced string | |
shell: bash | |
run: | | |
if [[ '${{ steps.str.outputs.replaced-string }}' != 'Apple Apricot' ]]; then | |
echo '!!! Action failed to make simple string replacement' | |
exit 1 | |
fi | |
- name: Create a dummy file to read from | |
shell: bash | |
run: | | |
echo -n 'Apricot Blueberry' > tmp-read-from-file.txt | |
- name: Replace string from file | |
id: from-file | |
uses: ./replace-string | |
with: | |
read-from-file: 'tmp-read-from-file.txt' | |
replace-regex: 'Blue' | |
flags: 'g' | |
replace-with: 'Red' | |
- name: Check replaced string | |
shell: bash | |
run: | | |
if [[ '${{ steps.from-file.outputs.replaced-string }}' != 'Apricot Redberry' ]]; then | |
echo '!!! Action failed to replace string from a file' | |
exit 1 | |
fi | |
- name: Create an output to read from | |
shell: bash | |
id: output | |
run: | | |
echo "read-me=Cranberry and green apple" >> $GITHUB_OUTPUT | |
- name: Replace string from output and write to file | |
uses: ./replace-string | |
with: | |
string: ${{ steps.output.outputs.read-me }} | |
replace-regex: 'green' | |
flags: 'g' | |
replace-with: 'red' | |
write-to-file: 'tmp-write-to-file.txt' | |
- name: Check replaced string | |
shell: bash | |
run: | | |
if [[ ! -f tmp-write-to-file.txt ]]; then | |
echo "!!! Action failed to create an output file" | |
exit 1 | |
fi | |
output_from_file=$(cat tmp-write-to-file.txt); | |
if [[ "${output_from_file}" != 'Cranberry and red apple' ]]; then | |
echo "!!! Action failed to create an output file with replaced string" | |
exit 1 | |
fi | |
- name: Create a dummy file with multiple variables | |
id: from-file-with-multiple | |
run: | | |
cat >tmp-read-from-file-multiple.txt <<EOF | |
Line without anything to replace | |
The following should contain an apple: __APPLE__ is red | |
And the following shall be '\$AZERO': __CURRENCY__ | |
Thanks! | |
EOF | |
cat >tmp-write-to-file-multiple-expected.txt <<EOF | |
Line without anything to replace | |
The following should contain an apple: apple is red | |
And the following shall be '\$AZERO': \$AZERO | |
Thanks! | |
EOF | |
- name: Replace multiple strings | |
uses: ./replace-string | |
with: | |
read-from-file: 'tmp-read-from-file-multiple.txt' | |
replace-regex: |- | |
__APPLE__ | |
__CURRENCY__ | |
replace-with: |- | |
apple | |
$AZERO | |
write-to-file: 'tmp-write-to-file-multiple.txt' | |
- name: Check multistring replacement | |
run: | | |
diff tmp-write-to-file-multiple.txt tmp-write-to-file-multiple-expected.txt | |
- name: Replace newline characters | |
uses: ./replace-string | |
id: replace-newlines | |
with: | |
read-from-file: 'tmp-read-from-file-multiple.txt' | |
replace-regex: '\n' | |
replace-with: '%' | |
write-to-file: 'tmp-write-to-file-multiple-newlines.txt' | |
flags: g | |
- name: Check newline replacement | |
shell: bash | |
# yamllint disable rule:line-length | |
run: | | |
echo -n "Line without anything to replace%The following should contain an apple: __APPLE__ is red%And the following shall be '\$AZERO': __CURRENCY__%Thanks!%" > tmp-expected.txt | |
diff tmp-expected.txt tmp-write-to-file-multiple-newlines.txt |