summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-12-04 10:44:03 -0800
committerGitHub <noreply@github.com>2020-12-04 10:44:03 -0800
commite98c32f5eb1c6e880ed69a135e798b3c43f77d93 (patch)
tree270a0008420b668207cf209b4ac3d4f3c18b3c06
parent47ed0f68602a8ed0c425d2a4666969ad0db04ca6 (diff)
add windows release script (#1627)
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
-rw-r--r--.github/workflows/release-linux.yml34
-rw-r--r--.github/workflows/release-windows.yml89
-rw-r--r--appveyor.yml132
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