Skip to content

readme - add YouTube learning series #36

readme - add YouTube learning series

readme - add YouTube learning series #36

Workflow file for this run

name: Code Check
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_call:
workflow_dispatch:
jobs:
code_check:
strategy:
matrix:
os: [windows-latest, macOS-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
outputs:
output1: ${{ steps.compare_output_windows.outputs.diff }}
output2: ${{ steps.compare_output_macos_linux.outputs.diff }}
steps:
# Checks-out repository under $GITHUB_WORKSPACE, so job can access it
- uses: actions/checkout@v3
# Setup Amazon Coretto OpenJDK
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '8'
- name: Install Microsoft Visual C++ Redistributable using chocolatey (Windows)
if: (matrix.os == 'windows-latest')
uses: crazy-max/ghaction-chocolatey@v1
with:
args: install vcredist2012
- name: Install TagUI (Windows)
if: (matrix.os == 'windows-latest')
run: |
# Add src to path variable
echo "${{github.workspace}}\src" >> $env:GITHUB_PATH
# Add tagui_logging file for generated js file to persist
Out-File -FilePath "${{github.workspace}}\src\tagui_logging"
- name: Install TagUI (macOS / Linux)
if: (matrix.os != 'windows-latest')
run: |
# Add src to path variable
sudo ln -sf ${{github.workspace}}/src/tagui /usr/local/bin/tagui
# Add tagui_logging file for generated js file to persist
cd "${{github.workspace}}/src"
touch tagui_logging
chmod -R 777 "${{github.workspace}}"
- name: Add Unx, PHP, CasperJS and SlimerJS dependency files (Windows)
if: (matrix.os == 'windows-latest')
run: |
cd "${{github.workspace}}\src"
# Add unx dependencies
Invoke-WebRequest -Uri 'https://storage.googleapis.com/tagui-dependencies/unx.zip' -OutFile unxzip.zip
Expand-Archive -LiteralPath unxzip.zip
MOVE-ITEM -Path "${{github.workspace}}\src\unxzip\*" -Destination "${{github.workspace}}\src"
Remove-Item unxzip.zip
# Add PHP dependency files
Invoke-WebRequest 'https://windows.php.net/downloads/releases/archives/php-5.6.30-Win32-VC11-x86.zip' -OutFile php.zip
Expand-Archive -LiteralPath php.zip
Remove-Item php.zip
# Add SikuliX dependency files
Invoke-WebRequest -Uri 'https://storage.googleapis.com/tagui-dependencies/sikulix.zip' -OutFile sikulixzip.zip
Expand-Archive -LiteralPath sikulixzip.zip
MOVE-ITEM -Path "${{github.workspace}}\src\sikulixzip\*" -Destination "${{github.workspace}}\src"
Remove-Item sikulixzip.zip
# Add CasperJS dependency files
Invoke-WebRequest 'https://github.com/casperjs/casperjs/archive/refs/tags/1.1.4-1.zip' -OutFile casperjszip.zip
Expand-Archive -LiteralPath casperjszip.zip
MOVE-ITEM -Path "${{github.workspace}}\src\casperjszip\*" -Destination "${{github.workspace}}\src"
Remove-Item casperjszip.zip
Rename-Item -Path '${{github.workspace}}\src\casperjs-1.1.4-1' -NewName '${{github.workspace}}\src\casperjs'
# Add SlimerJS dependency files
Invoke-WebRequest 'https://github.com/laurentj/slimerjs/releases/download/1.0.0/slimerjs-1.0.0.zip' -OutFile slimerjszip.zip
Expand-Archive -LiteralPath slimerjszip.zip
MOVE-ITEM -Path "${{github.workspace}}\src\slimerjszip\*" -Destination "${{github.workspace}}\src"
Remove-Item slimerjszip.zip
Rename-Item -Path '${{github.workspace}}\src\slimerjs-1.0.0' -NewName '${{github.workspace}}\src\slimerjs'
# Add PhantomJS dependency files
Invoke-WebRequest 'https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip' -OutFile phantomjszip.zip
Expand-Archive -LiteralPath phantomjszip.zip
MOVE-ITEM -Path "${{github.workspace}}\src\phantomjszip\*" -Destination "${{github.workspace}}\src"
Remove-Item phantomjszip.zip
Rename-Item -Path '${{github.workspace}}\src\phantomjs-2.1.1-windows' -NewName '${{github.workspace}}\src\phantomjs'
- name: Add SikuliX, CasperJS and SlimerJS dependency files (macOS / Linux)
if: (matrix.os != 'windows-latest')
run: |
cd "${{github.workspace}}/src"
# Add SikuliX dependency files
curl -L 'https://storage.googleapis.com/tagui-dependencies/sikulix.zip' > sikulixzip.zip
unzip sikulixzip.zip
rm sikulixzip.zip
# Add CasperJS dependency files
curl -L 'https://github.com/casperjs/casperjs/archive/refs/tags/1.1.4-1.zip' > casperjs.zip
unzip casperjs.zip
rm casperjs.zip
mv casperjs-1.1.4-1 casperjs
# Add SlimerJS dependency files
curl -L 'https://github.com/laurentj/slimerjs/releases/download/1.0.0/slimerjs-1.0.0.zip' > slimerjs.zip
unzip slimerjs.zip
rm slimerjs.zip
mv slimerjs-1.0.0 slimerjs
- name: Add PhantomJS dependency files (macOS)
if: (matrix.os == 'macOS-latest')
run: |
cd "${{github.workspace}}/src"
curl -L 'https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip' > phantomjs.zip
unzip phantomjs.zip
rm phantomjs.zip
mv phantomjs-2.1.1-macosx phantomjs
- name: Add PhantomJS dependency files (Linux)
if: (matrix.os == 'ubuntu-latest')
run: |
cd "${{github.workspace}}/src"
curl -L 'https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2' > phantomjs.tar.bz2
tar -xf phantomjs.tar.bz2
rm phantomjs.tar.bz2
mv phantomjs-2.1.1-linux-x86_64 phantomjs
- name: Run visual automation flow for first time to install jython standalone jar - expected to fail (Windows)
if: (matrix.os == 'windows-latest')
timeout-minutes: 2
continue-on-error: true
run:
tagui "${{github.workspace}}\src\test\positive_test.tag" -n
- name: Run visual automation flow again for successful run (Windows)
if: (matrix.os == 'windows-latest')
run:
tagui "${{github.workspace}}\src\test\positive_test.tag" -n
- name: Run visual automation flow for first time to install jython standalone jar - expected to fail (macOS / Linux)
if: (matrix.os != 'windows-latest')
timeout-minutes: 2
continue-on-error: true
run:
tagui "${{github.workspace}}/src/test/positive_test.tag" -n
- name: Run visual automation flow again for successful run (macOS / Linux)
if: (matrix.os != 'windows-latest')
run:
tagui "${{github.workspace}}/src/test/positive_test.tag" -n
- name: Compare output of positive_test.js and positive_test.signature (Windows)
if: (matrix.os == 'windows-latest')
id: compare_output_windows
run: |
Compare-Object (Get-Content '${{github.workspace}}\src\test\positive_test.js') (Get-Content '${{github.workspace}}\src\test\positive_test.signature') -PassThru | Set-Content '${{github.workspace}}\src\test\output.txt'
if(Test-Path -Path '${{github.workspace}}\src\test\output.txt' -PathType Leaf) {exit 1}
- name: Compare output of positive_test.js and positive_test.signature (macOS / Linux)
if: (matrix.os != 'windows-latest')
id: compare_output_macos_linux
run:
if ! diff "${{github.workspace}}/src/test/positive_test.js" "${{github.workspace}}/src/test/positive_test.signature" >/dev/null; then exit 1; fi