Skip to content

Create ci.yml

Create ci.yml #36

Workflow file for this run

name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
PHARO_VERSION: 13
jobs:
test:
runs-on: windows-latest
steps:
- name: Configure environment variables
run: |
echo "PHARO_FILES_URL=https://files.pharo.org/get-files/${{ env.PHARO_VERSION }}0" >> $env:GITHUB_ENV
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download Pharo
run: |
$url = $Env:PHARO_FILES_URL + "/pharo-vm-Windows-x86_64-stable.zip"
Invoke-WebRequest -Uri $url -OutFile pharo-vm.zip
$url = $Env:PHARO_FILES_URL + "/pharoImage-x86_64.zip"
Invoke-WebRequest -Uri $url -OutFile image.zip
unzip pharo-vm.zip -d pharo-vm
unzip image.zip
Get-ChildItem -Path . -Filter "Pharo*.image" | ForEach-Object {
Rename-Item $_.FullName -NewName "Pharo.image"
}
- name: Load project into image
run: |
dir
pharo-vm\Pharo.exe Pharo.image eval "'Pharo working dir content: ', (Character space join: (FileLocator workingDirectory / 'src') entries)"
pharo-vm\Pharo.exe Pharo.image eval --save "Metacello new baseline: 'OSWinSubprocess'; repository: 'gitlocal://src'; ignoreImage; onConflictUseIncoming; onWarning: [:ex | ex load]; load. PackageOrganizer default packages select: [ :pkg | pkg name beginsWith: 'OSWinSubprocess' ] thenCollect: #name"
- name: Run tests
run: pharo-vm\Pharo.exe Pharo.image test --junit-xml-output "OSWinSubprocess.*"
- name: Upload test results
uses: actions/upload-artifact@v4
if: success() || failure() # run this step even if previous step failed
with:
name: test-results
path: ./*-Test.xml