Skip to content

Deployment

Deployment #106

Workflow file for this run

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