Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
bicep/.github/workflows/build.yml
View runs Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
264 lines (220 sloc)
7.82 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
tags: | |
- 'latest' | |
- 'v*' | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
build-bicep: | |
name: 'Build CLI' | |
runs-on: ${{ matrix.os }} | |
env: | |
# don't print dotnet logo | |
DOTNET_NOLOGO: true | |
# disable telemetry (reduces dotnet tool output in logs) | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
strategy: | |
# let us get failures from other jobs even if one fails | |
fail-fast: false | |
matrix: | |
os: [ 'windows-latest', 'ubuntu-latest', 'macos-latest' ] | |
include: | |
- os: 'windows-latest' | |
rid: 'win-x64' | |
configuration: 'release' | |
publishLanguageServer: 'false' | |
- os: 'ubuntu-latest' | |
rid: 'linux-x64' | |
configuration: 'release' | |
publishLanguageServer: 'true' | |
- os: 'macos-latest' | |
rid: 'osx-x64' | |
configuration: 'release' | |
publishLanguageServer: 'false' | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | |
submodules: true | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v1.7.2 | |
with: | |
dotnet-version: 3.1.301 | |
- name: Build | |
run: dotnet build --configuration ${{ matrix.configuration }} | |
- name: Test | |
run: dotnet test --configuration ${{ matrix.configuration }} --collect:"XPlat Code Coverage" --settings ./.github/workflows/codecov.runsettings | |
- name: Publish Language Server | |
if: ${{ matrix.publishLanguageServer == 'true' }} | |
run: dotnet publish --configuration ${{ matrix.configuration }} ./src/Bicep.LangServer/Bicep.LangServer.csproj | |
- name: Publish Bicep | |
run: dotnet publish --configuration ${{ matrix.configuration }} --self-contained true -p:PublishTrimmed=true -p:PublishSingleFile=true -r ${{ matrix.rid }} ./src/Bicep.Cli/Bicep.Cli.csproj | |
- name: Upload Language Server | |
uses: actions/upload-artifact@v2 | |
if: ${{ matrix.publishLanguageServer == 'true' }} | |
with: | |
name: Bicep.LangServer | |
path: ./src/Bicep.LangServer/bin/${{ matrix.configuration }}/netcoreapp3.1/publish/* | |
- name: Upload Bicep | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bicep-${{ matrix.configuration }}-${{ matrix.rid }} | |
path: ./src/Bicep.Cli/bin/${{ matrix.configuration }}/netcoreapp3.1/${{ matrix.rid }}/publish/* | |
if-no-files-found: error | |
- name: Upload Code Coverage | |
uses: codecov/codecov-action@v1 | |
with: | |
flags: dotnet | |
build-windows-setup: | |
name: 'Build Windows Setup' | |
runs-on: 'windows-latest' | |
needs: build-bicep | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | |
submodules: true | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v1.7.2 | |
with: | |
dotnet-version: 3.1.301 | |
- name: Download Bicep CLI | |
uses: actions/download-artifact@v2 | |
with: | |
name: bicep-release-win-x64 | |
path: ./src/installer-win/bicep | |
- name: Build Windows Installer | |
run: dotnet build --configuration release ./src/installer-win/installer.proj | |
- name: Upload Windows Installer | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bicep-setup-win-x64 | |
path: ./src/installer-win/bin/release/net46/bicep-setup-win-x64.exe | |
build-vsix: | |
name: 'Build VSIX' | |
runs-on: 'ubuntu-latest' | |
needs: build-bicep | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | |
submodules: true | |
- name: Setup Node.js | |
uses: actions/setup-node@v2.1.2 | |
with: | |
node-version: 10.x | |
- name: npm ci | |
run: npm ci | |
working-directory: ./src/vscode-bicep | |
- name: Run lint | |
run: npm run lint | |
working-directory: ./src/vscode-bicep | |
- name: Download Language Server | |
uses: actions/download-artifact@v2 | |
with: | |
name: Bicep.LangServer | |
path: ./src/vscode-bicep/bicepLanguageServer | |
- name: Create VSIX | |
run: npm run package | |
working-directory: ./src/vscode-bicep | |
- name: Upload VSIX | |
uses: actions/upload-artifact@v2 | |
with: | |
name: vscode-bicep.vsix | |
path: ./src/vscode-bicep/vscode-bicep.vsix | |
if-no-files-found: error | |
build-playground: | |
name: 'Build Playground' | |
runs-on: 'ubuntu-latest' | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | |
submodules: true | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v1.7.2 | |
with: | |
dotnet-version: 3.1.301 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2.1.2 | |
with: | |
node-version: 10.x | |
- name: npm ci | |
run: npm ci | |
working-directory: ./src/playground | |
- name: Build | |
run: npm run package | |
working-directory: ./src/playground | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: playground | |
path: ./src/playground/dist/* | |
if-no-files-found: error | |
create-release: | |
name: 'Create Release' | |
runs-on: 'ubuntu-latest' | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }} | |
needs: [build-bicep, build-vsix, build-playground, build-windows-setup] | |
steps: | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@v2 | |
- name: Create Release | |
id: create-release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: true | |
prerelease: false | |
- name: Upload bicep-win-x64.exe | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: ./bicep-release-win-x64/bicep.exe | |
asset_name: bicep-win-x64.exe | |
asset_content_type: binary/octet-stream | |
- name: Upload bicep-linux-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: ./bicep-release-linux-x64/bicep | |
asset_name: bicep-linux-x64 | |
asset_content_type: binary/octet-stream | |
- name: Upload bicep-osx-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: ./bicep-release-osx-x64/bicep | |
asset_name: bicep-osx-x64 | |
asset_content_type: binary/octet-stream | |
- name: Upload vscode-bicep.vsix | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: ./vscode-bicep.vsix/vscode-bicep.vsix | |
asset_name: vscode-bicep.vsix | |
asset_content_type: binary/octet-stream | |
- name: Upload bicep-setup-win-x64.exe | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create-release.outputs.upload_url }} | |
asset_path: ./bicep-setup-win-x64/bicep-setup-win-x64.exe | |
asset_name: bicep-setup-win-x64.exe | |
asset_content_type: binary/octet-stream |