Skip to content

Deployment

Deployment #59

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
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