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'