68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
defaults:
|
|
run:
|
|
shell: pwsh
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
if: github.event_name == 'push'
|
|
with:
|
|
token: ${{ secrets.PUSH_GITHUB_TOKEN }}
|
|
- uses: actions/checkout@v4
|
|
if: github.event_name == 'pull_request'
|
|
- name: Fetch all history for all tags and branches
|
|
run: |
|
|
git fetch --prune --unshallow
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
- run: |
|
|
npm install
|
|
npm run format-check
|
|
npm run build:github
|
|
npm run build:azure
|
|
name: Build code
|
|
- name: gitversion/setup
|
|
uses: ./gitversion/setup
|
|
with:
|
|
versionSpec: '5.x'
|
|
- name: gitversion/execute
|
|
id: gitversion # step id used as reference for output values
|
|
uses: ./gitversion/execute
|
|
- run: |
|
|
echo "FullSemVer (env.fullSemVer) : ${{ env.fullSemVer }}"
|
|
echo "FullSemVer (env.GitVersion_FullSemVer) : ${{ env.GitVersion_FullSemVer }}"
|
|
echo "FullSemVer (steps.gitversion.outputs.fullSemVer) : ${{ steps.gitversion.outputs.fullSemVer }}"
|
|
echo "FullSemVer (steps.gitversion.outputs.GitVersion_FullSemVer) : ${{ steps.gitversion.outputs.GitVersion_FullSemVer }}"
|
|
name: Use variables and output
|
|
- name: Check for changes
|
|
if: matrix.os == 'ubuntu-latest' && github.event_name == 'push'
|
|
id: status
|
|
run: |
|
|
if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT }
|
|
- name: Rebuild dist and push
|
|
run: |
|
|
git add --verbose .
|
|
git config user.name 'Artur Stolear'
|
|
git config user.email 'artur.stolear@gmail.com'
|
|
git commit -m 'dist update' --allow-empty
|
|
git push --force
|
|
if: steps.status.outputs.has_changes == '1'
|