Deployment #58
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: Deployment | |
on: | |
workflow_dispatch: | |
inputs: | |
VersionNumber: | |
description: 'The New Version Number Ex: "1.2.3"' | |
required: true | |
type: string | |
default: "0.0.0" | |
IsPreRelease: | |
description: 'Is Prelease' | |
required: true | |
type: boolean | |
default: true | |
LanguageChangelog: | |
description: 'The Main Change Log' | |
required: true | |
type: string | |
default: 'added: fixed: removed:' | |
ImplementerChangelog: | |
description: 'The Change Log for implmenters(People who use this as a Scripting Lang Lib)' | |
required: true | |
type: string | |
default: 'added: fixed: removed:' | |
UploadToVSMarketPlace: | |
description: 'Upload To VS MarketPlace' | |
required: true | |
type: boolean | |
default: false | |
LSPChangelog: | |
description: 'The Change Log for Editor Extenions' | |
required: true | |
type: string | |
default: 'added: fixed: removed:' | |
jobs: | |
build-Windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v1.0.2 | |
- name: Run Premake | |
run: ./VS_2019.bat | |
- name: Restore cached objs | |
id: cache-objs-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: ./Output | |
key: ${{ runner.os }}-deployment | |
- name: Build 64 bit | |
run: | | |
cd ./BuildTools | |
./BuildWin64Published.bat | |
- name: Build 32 bit | |
if: ${{ inputs.IsPreRelease == false}} | |
run: | | |
cd ./BuildTools | |
./BuildWin32Published.bat | |
- name: Save cached Objs | |
if: always() | |
id: cache-Objs-save | |
uses: actions/cache/save@v3 | |
with: | |
path: ./Output | |
key: ${{ steps.cache-objs-restore.outputs.cache-primary-key }} | |
- name: Archive Output | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Output_Windows | |
path: | | |
Output/UCodelangCL | |
Output/UCodeLanguageSever | |
Output/UCodeLang | |
retention-days: 1 | |
build-Linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get X11 Packages | |
run: sudo apt-get install libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev | |
- name: Get OpenGl Packages | |
run: sudo apt install mesa-common-dev | |
- name: Make a scripts executable | |
run: | | |
chmod +x ./GNU_Make.sh | |
chmod +x ./BuildTools/BuildLinux32Published.sh | |
chmod +x ./BuildTools/BuildLinux64Published.sh | |
- name: Run Premake | |
run: ./GNU_Make.sh | |
- name: Restore cached objs | |
id: cache-objs-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: ./Output | |
key: ${{ runner.os }}-deployment | |
- name: Build 64 bit | |
run: make config=published_linux64 -j4 | |
- name: Save cached Objs | |
if: always() | |
id: cache-Objs-save | |
uses: actions/cache/save@v3 | |
with: | |
path: ./Output | |
key: ${{ steps.cache-objs-restore.outputs.cache-primary-key }} | |
- name: Archive Output | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Output_Linux | |
path: | | |
Output/UCodelangCL | |
Output/UCodeLanguageSever | |
Output/UCodeLang | |
retention-days: 1 | |
build-MacOS: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get glfw | |
run: brew install glfw | |
- name: Make a scripts executable | |
run: | | |
chmod +x ./GNU_MakeMacOS.sh | |
chmod +x ./BuildTools/RunTestsMacOSDebug.sh | |
- name: Run Premake | |
run: ./GNU_MakeMacOS.sh | |
- name: Restore cached objs | |
id: cache-objs-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: ./Output | |
key: ${{ runner.os }}-deployment | |
- name: Build | |
run: make config=published_macos -j4 | |
- name: Save cached | |
if: always() | |
id: cache-Objs-save | |
uses: actions/cache/save@v3 | |
with: | |
path: ./Output | |
key: ${{ steps.cache-objs-restore.outputs.cache-primary-key }} | |
- name: Archive Output | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Output_MacOS | |
path: | | |
Output/UCodelangCL | |
Output/UCodeLanguageSever | |
Output/UCodeLang | |
retention-days: 1 | |
build-Extensions: | |
if: ${{ inputs.UploadToVSMarketPlace == true}} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: set working path | |
run: cd ./UCodeLanguageSever/EditorSpecific/VSCode/ucode-language | |
- name: Install the dependencies | |
run: npm i | |
working-directory: ./UCodeLanguageSever/EditorSpecific/VSCode/ucode-language | |
- name: Install vsce | |
run: npm i -g vsce | |
working-directory: ./UCodeLanguageSever/EditorSpecific/VSCode/ucode-language | |
- name: PublishPreRelease | |
if: ${{ inputs.IsPreRelease == true}} | |
run: vsce publish --pre-release -p ${{ secrets.VSCE_TOKEN }} | |
working-directory: ./UCodeLanguageSever/EditorSpecific/VSCode/ucode-language | |
- name: Publish | |
if: ${{ inputs.IsPreRelease == false}} | |
run: vsce publish -p ${{ secrets.VSCE_TOKEN }} | |
working-directory: ./UCodeLanguageSever/EditorSpecific/VSCode/ucode-language | |
deployment-GitHub: | |
needs: [build-Windows,build-Linux,build-MacOS] | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v3 | |
- name: Build | |
run: echo "Do Build Here" | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
release_name: Release ${{ inputs.VersionNumber }} | |
body: | | |
LanguageChangelog Changelog: | |
${{ inputs.LanguageChangelog }} | |
Implementers Changelog: | |
${{ inputs.ImplementerChangelog }} | |
LSP Changelog: | |
${{ inputs.LSPChangelog }} | |
draft: false | |
prerelease: ${{ inputs.IsPreRelease }} | |
tag_name: Release-${{ inputs.VersionNumber }} | |
- name: Upload UCodeLangCAPI | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./UCodeLang/UCodeLang/UCodeLangCAPI.h | |
asset_name: UCodeLangCAPI.h | |
asset_content_type: text/plain | |
- name: Upload UCodeLangLibWindows64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodeLang/Win64/Published/UCodeLang.lib | |
asset_name: UCodeLang-win64.lib | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLWindows64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodelangCL/Win64/Published/uclang.exe | |
asset_name: uclang-win64.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverWindows64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodeLanguageSever/Win64/Published/uclanglsp.exe | |
asset_name: uclanglsp-win64.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibWindows32 | |
if: ${{ inputs.IsPreRelease == false}} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodeLang/Win32/Published/UCodeLang.lib | |
asset_name: UCodeLang-win32.lib | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLWindows32 | |
if: ${{ inputs.IsPreRelease == false}} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodelangCL/Win32/Published/uclang.exe | |
asset_name: uclang-win32.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverWindows32 | |
if: ${{ inputs.IsPreRelease == false}} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Windows/UCodeLanguageSever/Win32/Published/uclanglsp.exe | |
asset_name: uclanglsp-win32.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibLinux64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Linux/UCodeLang/linux64/Published/libUCodeLang.a | |
asset_name: libUCodeLang-linux64.a | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLlinux64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Linux/UCodelangCL/linux64/Published/uclang | |
asset_name: uclang-linux64 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverlinux64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_Linux/UCodeLanguageSever/linux64/Published/uclanglsp | |
asset_name: uclanglsp-linux64 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibMacOS | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_MacOS/UCodeLang/MacOS/Published/libUCodeLang.a | |
asset_name: libUCodeLang-macos.a | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLMacOS | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_MacOS/UCodelangCL/MacOS/Published/uclang | |
asset_name: uclang-macos | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverMacOS | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output_MacOS/UCodeLanguageSever/MacOS/Published/uclanglsp | |
asset_name: uclanglsp-macos | |
asset_content_type: application/octet-stream |