Test branch (#1)

* migrate ci

* updated submodule

* update

* update

Co-authored-by: Nikita Bykov <v-nibyko@microsoft.com>
This commit is contained in:
Nikita Bykov
2020-09-01 12:04:22 +03:00
committed by GitHub
parent c1d3ac8bda
commit 2647e8c5b7
4 changed files with 206 additions and 6 deletions

View File

@@ -0,0 +1,160 @@
name: Generate Boost package
on:
push:
workflow_dispatch:
inputs:
VERSION:
description: 'Boost version to build and upload'
required: true
default: '1.15.0'
PUBLISH_RELEASES:
description: 'Whether to publish releases'
required: true
default: 'false'
env:
VERSION: ${{ github.event.inputs.VERSION }}
defaults:
run:
shell: pwsh
jobs:
build_boost:
name: Build Boost ${{ github.event.inputs.VERSION }} [${{ matrix.platform }}]
runs-on: ubuntu-latest
env:
ARTIFACT_NAME: Boost-${{ github.event.inputs.VERSION }}-${{ matrix.platform }}-x64
strategy:
fail-fast: false
matrix:
platform: [linux, darwin, win32]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Build Boost ${{ env.VERSION }}
run: |
./builders/build-boost.ps1 -Version $env:VERSION `
-Platform ${{ matrix.platform }}
- name: Publish artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
# test_boost:
# name: Test Boost ${{ github.event.inputs.VERSION }} [${{ matrix.platform }}]
# needs: build_boost
# runs-on: ${{ matrix.os }}
# env:
# ARTIFACT_NAME: boost-${{ github.event.inputs.VERSION }}-${{ matrix.platform }}-x64
# strategy:
# fail-fast: false
# matrix:
# include:
# - os: ubuntu-latest
# platform: linux
# - os: macos-latest
# platform: darwin
# - os: windows-latest
# platform: win32
# steps:
# - uses: actions/checkout@v2
# with:
# submodules: true
# - name: Fully cleanup the toolcache directory before testing
# run: ./helpers/clean-toolcache.ps1 -ToolName "boost"
# - name: Download artifact
# uses: actions/download-artifact@v2
# with:
# path: ${{ runner.temp }}
# - name: Extract files
# run: |
# if ('${{ matrix.platform }}' -eq 'win32') {
# $artifactName = "${{ env.ARTIFACT_NAME }}.zip"
# 7z.exe x "$artifactName" -y | Out-Null
# } else {
# $artifactName = "${{ env.ARTIFACT_NAME }}.tar.gz"
# tar -xzf $artifactName
# }
# working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
# - name: Apply build artifact to the local machine
# run: |
# if ('${{ matrix.platform }}' -eq 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
# working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
# - name: Setup Boost ${{ env.VERSION }}
# uses: actions/setup-boost@v2.1.1
# with:
# boost-version: ${{ env.VERSION }}
# - name: Wait for the logs
# run: |
# Write-Host "Fake step that do nothing"
# Write-Host "We need it because log of previous step 'Setup Boost' is not available here yet."
# Write-Host "In testing step (Boost.Tests.ps1) we analyze build log of 'Setup Boost' task"
# Write-Host "to determine if Boost.js version was consumed from cache and was downloaded"
# for ($i = 0; $i -lt 200; $i++) { Get-Random }
# - name: Run tests
# run: |
# Install-Module Pester -Force -Scope CurrentUser
# Import-Module Pester
# Invoke-Pester -Script ./Boost.Tests.ps1 -EnableExit
# working-directory: ./tests
publish_release:
name: Publish release
if: github.event.inputs.PUBLISH_RELEASES == 'true'
# needs: test_boost
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
- name: Publish Release ${{ env.VERSION }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}-${{ github.run_id }}
release_name: ${{ env.VERSION }}
body: |
Boost ${{ env.VERSION }}
- name: Upload release assets
uses: actions/github-script@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
for (let artifactDir of fs.readdirSync('.')) {
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
console.log(`Upload ${artifactName} asset`);
github.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: ${{ steps.create_release.outputs.id }},
name: artifactName,
data: fs.readFileSync(`./${artifactDir}/${artifactName}`)
});
}
trigger_pr:
name: Trigger "Create Pull Request" workflow
needs: publish_release
runs-on: ubuntu-latest
steps:
- name: Trigger "Create Pull Request" workflow
uses: actions/github-script@v3
with:
github-token: ${{ secrets.PERSONAL_TOKEN }}
script: |
github.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'create-pr.yml',
ref: 'main'
});

33
.github/workflows/create-pr.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Create Pull Request
on:
workflow_dispatch:
defaults:
run:
shell: pwsh
jobs:
create_pr:
name: Create Pull Request
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Create versions-manifest.json
run: |
./helpers/packages-generation/manifest-generator.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
-GitHubAccessToken "${{secrets.GITHUB_TOKEN}}" `
-OutputFile "./versions-manifest.json" `
-ConfigurationFile "./config/go-manifest-config.json"
- name: Create GitHub PR
run: |
$formattedDate = Get-Date -Format "MM/dd/yyyy"
./helpers/github/create-pull-request.ps1 `
-RepositoryFullName "$env:GITHUB_REPOSITORY" `
-AccessToken "${{secrets.GITHUB_TOKEN}}" `
-BranchName "update-versions-manifest-file" `
-CommitMessage "Update versions-manifest" `
-PullRequestTitle "[versions-manifest] Update for release from ${formattedDate}" `
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"