diff --git a/.github/workflows/build-boost-packages.yml b/.github/workflows/build-boost-packages.yml index 1f90645..68944df 100644 --- a/.github/workflows/build-boost-packages.yml +++ b/.github/workflows/build-boost-packages.yml @@ -37,11 +37,11 @@ jobs: platform: linux-18.04 - os: windows-2016 architecture: x86_64 - toolset: msvc14.1 + toolset: msvc-14.1 platform: win32 - os: windows-2019 architecture: x86_64 - toolset: msvc14.2 + toolset: msvc-14.2 platform: win32 steps: @@ -63,7 +63,7 @@ jobs: path: ${{ runner.temp }}/artifact test_boost: - name: Test Boost ${{ github.event.inputs.VERSION }} [${{ matrix.platform }}] + name: Test Boost ${{ github.event.inputs.VERSION }} [${{ matrix.os }}] needs: build_boost runs-on: ${{ matrix.os }} env: @@ -83,11 +83,11 @@ jobs: architecture: x64 - os: windows-2016 platform: win32 - toolset: msvc14.1 + toolset: msvc-14.1 architecture: x86_64 - os: windows-2019 platform: win32 - toolset: msvc14.2 + toolset: msvc-14.2 architecture: x86_64 steps: - uses: actions/checkout@v2 @@ -104,7 +104,7 @@ jobs: - name: Extract files run: | - $artifactName = "${{ env.ARTIFACT_NAME }}.tar.gz" + $artifactName = Get-ChildItem -Name If ("${{ matrix.platform }}" -eq "win32") { $assetTarPath = $artifactName.TrimEnd(".tar.gz") 7z x $artifactName -o"$assetTarPath" -y | Out-Null @@ -173,6 +173,7 @@ jobs: data: fs.readFileSync(`./${artifactDir}/${artifactName}`) }); } + trigger_pr: name: Trigger "Create Pull Request" workflow needs: publish_release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8765977..37fca47 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,22 +29,20 @@ Here are a few things you can do that will increase the likelihood of your pull ### Directory structure ``` -├── azure-pipelines/ -| └──templates/ +├── .github/ +| └──workflows/ ├── builders/ ├── helpers/ ├── installers/ └── tests/ └──sources/ ``` -- `azure-pipelines*` - contains global YAML definitions for build pipelines. Reusable templates for specific jobs are located in `templates` subfolder. +- `.github/workflows` - contains repository workflow files. - `builders` - contains Boost builder classes and functions. -- `helpers` - contains global helper functions and functions. +- `helpers` - contains global helper classes and functions. - `installers` - contains installation script templates. - `tests` - contains test scripts. Required tests sources are located in `sources` subfolder. -\* _We use Azure Pipelines because there are a few features that Actions is still missing, we'll move to Actions as soon as possible_. - ## Resources - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) diff --git a/azure-pipelines/build-boost-packages.yml b/azure-pipelines/build-boost-packages.yml deleted file mode 100644 index fb06ee1..0000000 --- a/azure-pipelines/build-boost-packages.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: $(date:yyyyMMdd)$(rev:.r)-Boost-$(VERSION) -trigger: none -pr: - autoCancel: true - branches: - include: - - main - paths: - exclude: - - versions-manifest.json - -stages: -- stage: Build_Boost_Ubuntu_1604 - dependsOn: [] - variables: - VmImage: ubuntu-16.04 - Platform: linux-16.04 - Architecture: x64 - Toolset: gcc - jobs: - - template: /azure-pipelines/templates/build-job.yml - -- stage: Test_Boost_Ubuntu_1604 - condition: succeeded() - dependsOn: Build_Boost_Ubuntu_1604 - variables: - VmImage: ubuntu-16.04 - Platform: linux-16.04 - Architecture: x64 - Toolset: gcc - jobs: - - template: /azure-pipelines/templates/test-job.yml - -- stage: Build_Boost_Ubuntu_1804 - dependsOn: [] - variables: - VmImage: 'ubuntu-18.04' - Platform: linux-18.04 - Architecture: x64 - Toolset: gcc - jobs: - - template: /azure-pipelines/templates/build-job.yml - -- stage: Test_Boost_Ubuntu_1804 - condition: succeeded() - dependsOn: Build_Boost_Ubuntu_1804 - variables: - VmImage: 'ubuntu-18.04' - Platform: linux-18.04 - Architecture: x64 - Toolset: gcc - jobs: - - template: /azure-pipelines/templates/test-job.yml - -- stage: Build_Boost_msvc141 - dependsOn: [] - variables: - VmImage: 'vs2017-win2016' - Platform: win32 - Architecture: x86_64 - Toolset: msvc-14.1 - jobs: - - template: /azure-pipelines/templates/build-job.yml - -- stage: Test_Boost_msvc141 - condition: succeeded() - dependsOn: Build_Boost_msvc141 - variables: - VmImage: 'vs2017-win2016' - Platform: win32 - Architecture: x86_64 - Toolset: msvc-14.1 - jobs: - - template: /azure-pipelines/templates/test-job.yml - -- stage: Build_Boost_msvc142 - dependsOn: [] - variables: - VmImage: 'windows-2019' - Platform: win32 - Architecture: x86_64 - Toolset: msvc-14.2 - jobs: - - template: /azure-pipelines/templates/build-job.yml - -- stage: Test_Boost_msvc142 - condition: succeeded() - dependsOn: Build_Boost_msvc142 - variables: - VmImage: 'windows-2019' - Platform: win32 - Architecture: x86_64 - Toolset: msvc-14.2 - jobs: - - template: /azure-pipelines/templates/test-job.yml \ No newline at end of file diff --git a/azure-pipelines/templates/build-job.yml b/azure-pipelines/templates/build-job.yml deleted file mode 100644 index 4de7c9b..0000000 --- a/azure-pipelines/templates/build-job.yml +++ /dev/null @@ -1,20 +0,0 @@ -jobs: -- job: Build_Boost - timeoutInMinutes: 300 - pool: - name: Azure Pipelines - vmImage: $(VmImage) - steps: - - checkout: self - - task: PowerShell@2 - displayName: 'Build Boost $(Version)' - inputs: - targetType: filePath - filePath: './builders/build-boost.ps1' - arguments: '-Version $(Version) -Platform $(Platform) -Architecture $(Architecture) -Toolset $(Toolset)' - - - task: PublishPipelineArtifact@1 - displayName: 'Publish Artifact: Boost $(Version)' - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifactName: 'boost-$(Version)-$(Platform)-$(Toolset)-$(Architecture)' \ No newline at end of file diff --git a/azure-pipelines/templates/test-job.yml b/azure-pipelines/templates/test-job.yml deleted file mode 100644 index 80073f1..0000000 --- a/azure-pipelines/templates/test-job.yml +++ /dev/null @@ -1,80 +0,0 @@ -jobs: -- job: Test_Boost - pool: - name: Azure Pipelines - vmImage: $(VmImage) - steps: - - checkout: self - submodules: true - - task: PowerShell@2 - displayName: Fully cleanup the toolcache directory before testing - inputs: - targetType: filePath - filePath: helpers/clean-toolcache.ps1 - arguments: -ToolName "boost" - - - task: DownloadPipelineArtifact@2 - inputs: - source: 'current' - artifact: 'boost-$(Version)-$(Platform)-$(Toolset)-$(Architecture)' - path: $(Build.ArtifactStagingDirectory) - - - task: ExtractFiles@1 - inputs: - archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/boost-$(Version)-$(Platform)-*-$(Architecture).*' - destinationFolder: $(Build.BinariesDirectory) - cleanDestinationFolder: false - - - task: PowerShell@2 - displayName: 'Apply build artifact to the local machines' - inputs: - targetType: inline - script: | - if ("$(Platform)" -match 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh } - workingDirectory: '$(Build.BinariesDirectory)' - - - task: PowerShell@2 - displayName: 'Set up BOOST_ROOT' - inputs: - TargetType: inline - script: | - $BoostToolcachePath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "boost" - $BoostToolcacheVersionPath = Join-Path -Path $BoostToolcachePath -ChildPath "$(Version)" - $boostDirectory = Join-Path $BoostToolcacheVersionPath "$(Architecture)" - $LD_LIBRARY = Join-Path -Path $boostDirectory -ChildPath "lib" - Write-Host "BOOST_ROOT = ${boostDirectory}" - Write-Host "##vso[task.setvariable variable=BOOST_ROOT]${boostDirectory}" - Write-Host "##vso[task.setvariable variable=LD_LIBRARY_PATH]${LD_LIBRARY}" - - - task: PowerShell@2 - displayName: 'Run tests' - inputs: - TargetType: inline - script: | - Install-Module Pester -Force -Scope CurrentUser -RequiredVersion 4.10.1 - Import-Module Pester - $Platform = If ("$(Platform)" -eq "win32") { "Windows" } else { "Nix" } - $pesterParams = @( - @{ - Path="./Common.Tests.ps1"; - }, - @{ - Path="./${Platform}.Tests.ps1"; - Parameters=@{ - Version="$(Version)"; - Platform="$(Platform)" - } - } - ) - Invoke-Pester -Script $pesterParams -OutputFile "$(Build.SourcesDirectory)/tests/test_results.xml" -OutputFormat NUnitXml - workingDirectory: '$(Build.SourcesDirectory)/tests' - - - task: PublishTestResults@2 - displayName: 'Publish test results' - inputs: - testResultsFiles: '*.xml' - testResultsFormat: NUnit - searchFolder: 'tests' - failTaskOnFailedTests: true - testRunTitle: "Boost $(Version)-$(Platform)-$(Toolset)" - condition: always()