# Name of the workflow name: Build # Events used by github actions to know when to execute this workflow on: push: branches: - main pull_request: branches: - main workflow_dispatch: inputs: type: description: 'Meson buildtype (release, debug, etc.)' required: false test: description: 'Run tests (test)' required: false jobs: build: runs-on: windows-latest steps: - name: Check out repository uses: actions/checkout@v2 - name: Install Meson, Ninja, and Clang with Chocolatey and pip shell: pwsh run: | $ErrorActionPreference = "Stop" if (-not (Get-Command choco -ErrorAction SilentlyContinue)) { Set-ExecutionPolicy Bypass -Scope Process -Force iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) } if (-not (choco list --local-only | Select-String "python")) { choco install -y python } if (-not (choco list --local-only | Select-String "ninja")) { choco install -y ninja } if (-not (choco list --local-only | Select-String "llvm")) { choco install -y llvm } python -m pip install meson - name: Run PowerShell build script shell: pwsh env: CC: clang CXX: clang++ BUILD_TYPE: ${{ github.event.inputs.type }} RUN_TESTS: ${{ github.event.inputs.test }} run: | $ErrorActionPreference = "Stop" $type = $env:BUILD_TYPE $test = $env:RUN_TESTS $args = @() if (-not [string]::IsNullOrEmpty($type)) { $args += $type } if (-not [string]::IsNullOrEmpty($test)) { $args += $test } & .\scripts\build.ci.ps1 debug test - name: Get Short Commit SHA shell: pwsh run: | $shortSHA = $env:github_sha.Substring(0, 7) echo "Short SHA: $shortSHA" echo "SHORT_SHA=$shortSHA" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Create Package shell: pwsh run: | New-Item -ItemType Directory -Path "./artifact" Copy-Item "./build/refactor.exe" -Destination "./artifact/refactor.exe" Compress-Archive -Path "./artifact/*" -DestinationPath "./artifact/refactor-$(env:SHORT_SHA).zip" - name: Upload Release uses: ncipollo/release-action@v1 with: artifacts: ./artifact/refactor-${env:SHORT_SHA}.zip omitBody: true # bodyFile: "body.md" allowUpdates: true # - name: Upload artifact # uses: actions/upload-artifact@v2 # with: # name: artifact # path: ./artifact/artifact.zip # release: # needs: build # runs-on: ubuntu-latest # steps: # - name: Download artifact # uses: actions/download-artifact@v2 # with: # name: artifact # path: ./artifact # - name: Extract artifact # run: | # unzip ./artifact/artifact.zip -d ./artifact # - name: Create Git Tag # uses: anothrNick/github-tag-action@v1.61.0 # with: # github_token: ${{ secrets.GITHUB_TOKEN }} # WITH_V: true # - name: Create GitHub release # id: create_release # uses: actions/create-release@v1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # tag_name: v${{ steps.get_commit_count.outputs.commit_count }} # release_name: Release v${{ steps.get_commit_count.outputs.commit_count }} # draft: false # prerelease: false # - name: Upload refactor.exe to the release # uses: actions/upload-release-asset@v1 # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # with: # upload_url: ${{ steps.create_release.outputs.upload_url }} # asset_path: ./artifact/refactor-${env:SHORT_SHA}.zip # asset_name: refactor-${env:SHORT_SHA}.zip # asset_content_type: application/octet-stream