Deployment #106
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 | |
UploadToVSMarketPlace: | |
description: 'Upload To VS MarketPlace' | |
required: true | |
type: boolean | |
default: false | |
jobs: | |
build-Windows-32bit: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v1.0.2 | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake Install Dependencies | |
run: premake5 installdependencies | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Run Premake | |
run: premake5 vs2022 | |
- name: Build 32 bit | |
run: premake5 build_published_32bit | |
- name: Archive Output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows32 | |
path: | | |
Output/UCodeLangCL/Win32 | |
Output/UCodeLanguageSever/Win32 | |
Output/UCodeLang/Win32 | |
retention-days: 1 | |
build-Windows-64bit: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v1.0.2 | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake Install Dependencies | |
run: premake5 installdependencies | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Run Premake | |
run: premake5 vs2022 | |
- name: Build 64 bit | |
run: premake5 build_published | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: windows64 | |
path: | | |
Output/UCodeLangCL/Win64 | |
Output/UCodeLanguageSever/Win64 | |
Output/UCodeLang/Win64 | |
retention-days: 1 | |
build-Windows-arm64: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v1.0.2 | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake Install Dependencies | |
run: premake5 installdependencies | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Run Premake | |
run: premake5 vs2022 | |
- name: Build Arm64 bit | |
run: premake5 build_published_arm64 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: windowarm64 | |
path: | | |
Output/UCodeLangCL/ | |
Output/UCodeLanguageSever/ | |
Output/UCodeLang/ | |
retention-days: 1 | |
build-Linux-64bit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Run Premake Install Dependencies | |
run: premake5 installdependencies | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake | |
run: premake5 gmake2 | |
- name: Build 64 bit | |
run: premake5 build_published | |
- name: Archive Output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux64bit | |
path: | | |
Output/UCodeLangCL/linux64 | |
Output/UCodeLanguageSever/linux64 | |
Output/UCodeLang/linux64 | |
retention-days: 1 | |
build-Linux-32bit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add gcc multilib to PATH | |
run: sudo apt install gcc-multilib g++-multilib | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake | |
run: premake5 gmake2 | |
- name: Build 32 bit | |
run: premake5 build_published_32bit | |
- name: Archive Output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux32bit | |
path: | | |
Output/UCodeLangCL/linux32 | |
Output/UCodeLanguageSever/linux32 | |
Output/UCodeLang/linux32 | |
retention-days: 1 | |
build-Linux-arm64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add gcc aarch64 to PATH | |
run: sudo apt install gcc-aarch64-linux-gnu && sudo apt install g++-aarch64-linux-gnu | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake | |
run: premake5 gmake2 | |
- name: Build | |
run: premake5 build_published_arm64 | |
- name: Archive Output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linuxarm64 | |
path: | | |
Output/UCodeLangCL/linuxArm64 | |
Output/UCodeLanguageSever/linuxArm64 | |
Output/UCodeLang/linuxArm64 | |
retention-days: 1 | |
build-MacOS: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake Install Dependencies | |
run: premake5 installdependencies | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Run Premake | |
run: premake5 gmake2 | |
- name: Build | |
run: premake5 build_published | |
- name: Archive Output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macosbuild | |
path: | | |
Output/UCodeLangCL/MacOS | |
Output/UCodeLanguageSever/MacOS | |
Output/UCodeLang/MacOS | |
retention-days: 1 | |
wasm-build-32: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Add Emsdk to PATH | |
uses: mymindstorm/setup-emsdk@v13 | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake | |
run: premake5 gmake2 | |
- name: Build Wasm | |
run: premake5 web_build_published | |
android-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Ndk to PATH | |
uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: r26d | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Get premake-androidndk | |
run: git clone https://github.com/Triang3l/premake-androidndk .premake/premake-androidndk | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Add require to Premake | |
run: echo "require \"premake-androidndk/androidndk\"" > temp && cat premake5.lua >> temp && mv temp premake5.lua | |
- name: Run Premake | |
run: premake5 androidndk | |
- name: Build | |
run: premake5 build_android | |
ios-build: | |
runs-on: "macos-latest" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.3.1' | |
- name: Get zydis | |
run: premake5 installzydis | |
- name: Run Premake | |
run: premake5 xcode4 | |
- name: Fix IOS xcode file | |
run: premake5 fixios | |
- name: Build | |
run: xcodebuild -project UCodeLang/UCodeLang.xcodeproj -configuration published -sdk iphoneos build | |
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-64bit,build-Windows-32bit,build-Windows-arm64,build-Linux-32bit,build-Linux-64bit,build-Linux-arm64,wasm-build-32,build-MacOS,ios-build,android-build] | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add Premake to PATH | |
uses: abel0b/setup-premake@v2.4 | |
with: | |
version: "5.0.0-beta2" | |
- name: Version Setup | |
run: | | |
echo ${{ inputs.VersionNumber }} > ./version.txt | |
premake5 updateverion | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: Output | |
- 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_path: ./changelog.md | |
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 Windows Setup | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./Output/UCodeLangSetup.exe | |
# asset_name: UCodeLangSetup.exe | |
# asset_content_type: application/octet-stream | |
- 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/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/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/UCodeLanguageSever/Win64/Published/uclanglsp.exe | |
asset_name: uclanglsp-win64.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibWindows32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLang/Win32/Published/UCodeLang.lib | |
asset_name: UCodeLang-win32.lib | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLWindows32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLangCL/Win32/Published/uclang.exe | |
asset_name: uclang-win32.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverWindows32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLanguageSever/Win32/Published/uclanglsp.exe | |
asset_name: uclanglsp-win32.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibWindowsArm64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLang/WinArm/Published/UCodeLang.lib | |
asset_name: UCodeLang-win-arm64.lib | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLWindowsArm64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLangCL/WinArm/Published/uclang.exe | |
asset_name: uclang-win-arm64.exe | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverWindowsArm64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLanguageSever/WinArm/Published/uclanglsp.exe | |
asset_name: uclanglsp-win-arm64.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/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/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/UCodeLanguageSever/linux64/Published/uclanglsp | |
asset_name: uclanglsp-linux64 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibLinux32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLang/linux32/Published/libUCodeLang.a | |
asset_name: libUCodeLang-linux32.a | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLlinux32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLangCL/linux32/Published/uclang | |
asset_name: uclang-linux32 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverlinux32 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLanguageSever/linux32/Published/uclanglsp | |
asset_name: uclanglsp-linux32 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangLibLinuxArm | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLang/linuxArm64/Published/libUCodeLang.a | |
asset_name: libUCodeLang-linux-arm64.a | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangCLlinuxArm | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLangCL/linuxArm64/Published/uclang | |
asset_name: uclang-linux-arm64 | |
asset_content_type: application/octet-stream | |
- name: Upload UCodeLangSeverlinuxArm | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./Output/UCodeLanguageSever/linuxArm64/Published/uclanglsp | |
asset_name: uclanglsp-linux-arm64 | |
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/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/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/UCodeLanguageSever/MacOS/Published/uclanglsp | |
asset_name: uclanglsp-macos | |
asset_content_type: application/octet-stream | |
- name: Upload version Asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: version.txt | |
asset_name: version.txt | |
asset_content_type: application/octet-stream | |