diff options
| author | Yong He <yonghe@outlook.com> | 2020-12-04 10:44:03 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-04 10:44:03 -0800 |
| commit | e98c32f5eb1c6e880ed69a135e798b3c43f77d93 (patch) | |
| tree | 270a0008420b668207cf209b4ac3d4f3c18b3c06 | |
| parent | 47ed0f68602a8ed0c425d2a4666969ad0db04ca6 (diff) | |
add windows release script (#1627)
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
| -rw-r--r-- | .github/workflows/release-linux.yml | 34 | ||||
| -rw-r--r-- | .github/workflows/release-windows.yml | 89 | ||||
| -rw-r--r-- | appveyor.yml | 132 |
3 files changed, 95 insertions, 160 deletions
diff --git a/.github/workflows/release-linux.yml b/.github/workflows/release-linux.yml index 54cbd8c26..d07100721 100644 --- a/.github/workflows/release-linux.yml +++ b/.github/workflows/release-linux.yml @@ -39,33 +39,11 @@ jobs: tar -czf ${SLANG_BINARY_ARCHIVE_TAR} bin/*/*/slangc bin/*/*/libslang.so bin/*/*/libslang-glslang.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h prelude/*.h echo "::set-output name=SLANG_BINARY_ARCHIVE::${SLANG_BINARY_ARCHIVE}" echo "::set-output name=SLANG_BINARY_ARCHIVE_TAR::${SLANG_BINARY_ARCHIVE_TAR}" - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: Release ${{ github.ref }} - draft: false - prerelease: false - - name: Upload Release Asset (zip) - id: upload-release-asset-zip - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: UploadBinary + uses: softprops/action-gh-release@v1 with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }} - asset_name: ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }} - asset_content_type: application/zip - - name: Upload Release Asset (tar) - id: upload-release-asset-tar - uses: actions/upload-release-asset@v1 + files: | + ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }} + ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }} - asset_name: ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }} - asset_content_type: application/zip
\ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file diff --git a/.github/workflows/release-windows.yml b/.github/workflows/release-windows.yml new file mode 100644 index 000000000..15b164efc --- /dev/null +++ b/.github/workflows/release-windows.yml @@ -0,0 +1,89 @@ +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + +name: Upload Release Asset - Windows + +jobs: + build: + name: Upload Release Asset - Windows + runs-on: windows-latest + strategy: + matrix: + configuration: ['Release'] + platform: ['Win32', 'x64'] + steps: + - uses: actions/checkout@v2.3.4 + with: + submodules: 'true' + fetch-depth: '0' + - name: setup-msbuild + uses: microsoft/setup-msbuild@v1 + - name: premake + run: + .\premake.bat vs2017 + - name: msbuild + run: + MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 + - name: archive + id: archive + run: | + echo "achiving files..." + if ("${{matrix.platform}}" -eq "x64") + { + $slangDeployPlatform = "win64" + } + else + { + $slangDeployPlatform = "win32" + } + $tagName = & git describe --tags + $slangVersion = $tagName.TrimStart("v") + $binArchive = "slang-$slangVersion-$slangDeployPlatform.zip" + + echo "name=SLANG_BINARY_ARCHIVE::$binArchive" + echo "::set-output name=SLANG_WIN32_BINARY_ARCHIVE::$binArchive" + + 7z a "$binArchive" slang.h + 7z a "$binArchive" slang-com-helper.h + 7z a "$binArchive" slang-com-ptr.h + 7z a "$binArchive" slang-tag-version.h + 7z a "$binArchive" prelude\*.h + 7z a "$binArchive" bin\*\*\slang.dll + 7z a "$binArchive" bin\*\*\slang.lib + 7z a "$binArchive" bin\*\*\slang-glslang.dll + 7z a "$binArchive" bin\*\*\slangc.exe + 7z a "$binArchive" docs\*.md + + $srcArchive = "slang-$slangVersion-source.zip" + echo "::set-output name=SLANG_SOURCE_ARCHIVE::$srcArchive" + + 7z a "$srcArchive" slang.h + 7z a "$srcArchive" slang-com-helper.h + 7z a "$srcArchive" slang-com-ptr.h + 7z a "$srcArchive" slang-tag-version.h + 7z a "$srcArchive" prelude\*.h + 7z a "$srcArchive" source\*\*.h + 7z a "$srcArchive" source\*\*.cpp + 7z a "$srcArchive" docs\*.md + 7z a "$srcArchive" README.md + 7z a "$srcArchive" LICENSE + - name: Check outputs + shell: pwsh + run: echo "binary is ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }}" + - name: UploadBinary + uses: softprops/action-gh-release@v1 + with: + files: | + ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: UploadSource + uses: softprops/action-gh-release@v1 + if: ${{ matrix.platform == 'x64' }} + with: + files: ${{ steps.archive.outputs.SLANG_SOURCE_ARCHIVE }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 0c3e0f4b1..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,132 +0,0 @@ -# Our solution file is currently set up for VS2015 -image: Visual Studio 2015 -skip_non_tags: true -init: - # Construct a version number suitable for using as a release name - - ps: >- - if ($env:APPVEYOR_REPO_TAG -eq "true") - { - $env:SLANG_VERSION = "$($env:APPVEYOR_REPO_TAG_NAME.TrimStart("v"))" - } - else - { - $env:SLANG_VERSION = "dev-$($env:APPVEYOR_REPO_COMMIT.Substring(0, 7))" - } - -# The project uses a submodule for the "glslang" dependency, -# so we need to make sure to pull that before building. -install: - - git submodule update --init --recursive - - ps: git describe --tags | %{$_ -replace "^", "#define SLANG_TAG_VERSION """ -replace "$", """"} > slang-tag-version.h - -# We want to build the full matrix of platforms and configurations -# that we support on Windows. -# -# Put Release|x64 first since that is the target which runs the most tests. -platform: - - x64 - - Win32 - -configuration: - - Release - - Debug - -# In the interests of time, go ahead and immediately fail a build -# if any job fails, rather than keep on building to discover the -# full set of failures. -matrix: - fast_finish: true - -# MSBUILD should ideally be able to find our solution file -# automatically, but it seems to get confused, so we specify -# the file name to use here. -build: - project: slang.sln - parallel: true - verbosity: minimal - -# Testing - -# We only run tests on the Release build for now, just to speed -# up the build process. -# -# TODO: We should really define different levels of tests, and -# at least run some "smoke" tests across all builds. - -test_script: - - ps: | - if ($env:CONFIGURATION -eq "Debug") - { - $testCategory = "smoke" - } - elseif($env:PLATFORM -eq "x64") - { - $testCategory = "full" - } - else - { - $testCategory = "quick" - } - .\test.bat -platform %PLATFORM% -configuration %CONFIGURATION% -appveyor -category $testCategory - -# Package up the stuff we want to deploy into a single .zip file - -after_build: - - ps: | - if ($env:PLATFORM -eq "x64") - { - $env:SLANG_DEPLOY_PLATFORM = "win64" - } - else - { - $env:SLANG_DEPLOY_PLATFORM = "win32" - } - $env:SLANG_BINARY_ARCHIVE = "slang-$($env:SLANG_VERSION)-$($env:SLANG_DEPLOY_PLATFORM).zip" - - 7z a "$env:SLANG_BINARY_ARCHIVE" slang.h - 7z a "$env:SLANG_BINARY_ARCHIVE" slang-com-helper.h - 7z a "$env:SLANG_BINARY_ARCHIVE" slang-com-ptr.h - 7z a "$env:SLANG_BINARY_ARCHIVE" slang-tag-version.h - 7z a "$env:SLANG_BINARY_ARCHIVE" prelude\*.h - 7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang.dll - 7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang.lib - 7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang-glslang.dll - 7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slangc.exe - 7z a "$env:SLANG_BINARY_ARCHIVE" docs\*.md - - $env:SLANG_SOURCE_ARCHIVE = "slang-$($env:SLANG_VERSION)-source.zip" - - 7z a "$env:SLANG_SOURCE_ARCHIVE" slang.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" slang-com-helper.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" slang-com-ptr.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" slang-tag-version.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" prelude\*.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" source\*\*.h - 7z a "$env:SLANG_SOURCE_ARCHIVE" source\*\*.cpp - 7z a "$env:SLANG_SOURCE_ARCHIVE" docs\*.md - 7z a "$env:SLANG_SOURCE_ARCHIVE" README.md - 7z a "$env:SLANG_SOURCE_ARCHIVE" LICENSE - -# Register the created .zip file as an artifact with AppVeyor - -artifacts: - - path: $(SLANG_BINARY_ARCHIVE) - name: binary_archive - - path: $(SLANG_SOURCE_ARCHIVE) - name: source_archive - -# On a successful build of a tag, push archices to GitHub releases - -deploy: - release: v$(SLANG_VERSION) - description: 'Slang $(SLANG_VERSION)' - provider: GitHub - auth_token: - secure: +FukP7TA9F+fofZRZnu2FSqPcrQ1u4r8r4pl+/83owiY6M1R4ykg+8RcSzXi2f63 - artifact: 'binary_archive,source_archive' - draft: false - prerelease: false - force_update: false - on: - configuration: Release - appveyor_repo_tag: true # deploy on tag push only |
