Skip to content

Commit

Permalink
Reconfigure build to github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
gorlak committed Feb 19, 2021
1 parent 5a873fe commit 417428e
Show file tree
Hide file tree
Showing 6 changed files with 228 additions and 64 deletions.
48 changes: 0 additions & 48 deletions .appveyor.yml

This file was deleted.

65 changes: 65 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Build

on:
push:
branches:
- master
pull_request: {}

jobs:

build-debug:
name: Debug
runs-on: [windows-latest]

steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: recursive

- name: Build OpenSSL Debug
uses: ilammy/msvc-dev-cmd@v1
run: |
cd ${{ github.workspace }}\Dependencies
cmd.exe /c call openssl-build.bat debug
- name: Premake
run: |
cd ${{ github.workspace }}
cmd.exe /c call premake.bat
- name: Setup MSBuild
uses: microsoft/[email protected]

- name: Build Debug
run: |
MSBuild.exe Build\P4Win.sln -p:Configuration=Debug
build-release:
name: Release
runs-on: [windows-latest]

steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: recursive

- name: Build OpenSSL Release
uses: ilammy/msvc-dev-cmd@v1
run: |
cd ${{ github.workspace }}\Dependencies
cmd.exe /c call openssl-build.bat release
- name: Premake
run: |
cd ${{ github.workspace }}
cmd.exe /c call premake.bat
- name: Setup MSBuild
uses: microsoft/[email protected]

- name: Build Release
run: |
MSBuild.exe Build\P4Win.sln -p:Configuration=Release
63 changes: 63 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Release

on:
push:
tags:
- 'v*'

jobs:
release:
name: Release
runs-on: [windows-latest]

steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: recursive

- name: Build OpenSSL Release
uses: ilammy/msvc-dev-cmd@v1
run: |
cd ${{ github.workspace }}\Dependencies
cmd.exe /c call openssl-build.bat release
- name: Premake
run: |
cd ${{ github.workspace }}
cmd.exe /c call premake.bat
- name: Setup MSBuild
uses: microsoft/[email protected]

- name: Build Release
run: |
MSBuild.exe Build\P4Win.sln -p:Configuration=Release
- name: Source Index PDB
run: |
cmd.exe /c call source_index_pdb.bat Bin\Release\P4Win.pdb
- name: Build Installer
run: |
cmd.exe /c call installer.bat
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: false
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}

- name: Upload Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: Bin/Release/P4WinSetup.exe
asset_name: P4WinSetup.exe
asset_content_type: application/vnd.microsoft.portable-executable
37 changes: 21 additions & 16 deletions Dependencies/openssl-build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ if "%VSCMD_ARG_TGT_ARCH%" equ "x64" (
set SETUP=ms\do_ms.bat
)

if "%1" equ "" set BUILD_DEBUG=1
if "%1" equ "" set BUILD_RELEASE=1
if "%1" equ "debug" set BUILD_DEBUG=1
if "%1" equ "release" set BUILD_RELEASE=1

set RUNTIME=d

pushd %~dp0openssl
Expand All @@ -32,31 +37,31 @@ if "%RUNTIME%" equ "d" copy /y ms\nt.mak ms\nt.mak.orig
:: Release
::

perl Configure %CONFIGURE% no-asm --prefix=%~dp0\%PLATFORM%-m%RUNTIME%
call %SETUP%
if defined BUILD_RELEASE perl Configure %CONFIGURE% no-asm --prefix=%~dp0\%PLATFORM%-m%RUNTIME%
if defined BUILD_RELEASE call %SETUP%

if "%RUNTIME%" equ "d" copy /y ms\nt.mak ms\nt.mak.unhacked
if "%RUNTIME%" equ "d" perl -p -e "s/\/MT/\/MD/g" ms\nt.mak.unhacked > ms\nt.mak
if defined BUILD_RELEASE if "%RUNTIME%" equ "d" copy /y ms\nt.mak ms\nt.mak.unhacked
if defined BUILD_RELEASE if "%RUNTIME%" equ "d" perl -p -e "s/\/MT/\/MD/g" ms\nt.mak.unhacked > ms\nt.mak

nmake -f ms\nt.mak
nmake -f ms\nt.mak install
copy /y tmp32\lib.pdb %~dp0\%PLATFORM%-m%RUNTIME%\lib\
nmake -f ms\nt.mak clean
if defined BUILD_RELEASE nmake -f ms\nt.mak
if defined BUILD_RELEASE nmake -f ms\nt.mak install
if defined BUILD_RELEASE copy /y tmp32\lib.pdb %~dp0\%PLATFORM%-m%RUNTIME%\lib\
if defined BUILD_RELEASE nmake -f ms\nt.mak clean

::
:: Debug
::

perl Configure debug-%CONFIGURE% no-asm --prefix=%~dp0\%PLATFORM%-m%RUNTIME%d
call %SETUP%
if defined BUILD_DEBUG perl Configure debug-%CONFIGURE% no-asm --prefix=%~dp0\%PLATFORM%-m%RUNTIME%d
if defined BUILD_DEBUG call %SETUP%

if "%RUNTIME%" equ "d" copy /y ms\nt.mak ms\nt.mak.unhacked
if "%RUNTIME%" equ "d" perl -p -e "s/\/MT/\/MD/g" ms\nt.mak.unhacked > ms\nt.mak
if defined BUILD_DEBUG if "%RUNTIME%" equ "d" copy /y ms\nt.mak ms\nt.mak.unhacked
if defined BUILD_DEBUG if "%RUNTIME%" equ "d" perl -p -e "s/\/MT/\/MD/g" ms\nt.mak.unhacked > ms\nt.mak

nmake -f ms\nt.mak
nmake -f ms\nt.mak install
copy /y tmp32.dbg\lib.pdb %~dp0\%PLATFORM%-m%RUNTIME%d\lib\
nmake -f ms\nt.mak clean
if defined BUILD_DEBUG nmake -f ms\nt.mak
if defined BUILD_DEBUG nmake -f ms\nt.mak install
if defined BUILD_DEBUG copy /y tmp32.dbg\lib.pdb %~dp0\%PLATFORM%-m%RUNTIME%d\lib\
if defined BUILD_DEBUG nmake -f ms\nt.mak clean

::
:: Restore
Expand Down
46 changes: 46 additions & 0 deletions source_index_pdb.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
@echo off

setlocal
pushd %~dp0

::
:: Generate the script section file for pdbstr.exe
::

echo:
echo Writing source_index.txt header...

echo SRCSRV: ini ------------------------------------------------ > source_index.txt
echo VERSION=2 >> source_index.txt
echo VERCTRL=http >> source_index.txt
echo SRCSRV: variables ------------------------------------------ >> source_index.txt
echo HTTP_ALIAS=https://raw.githubusercontent.com >> source_index.txt
echo HTTP_EXTRACT_TARGET=%%HTTP_ALIAS%%%%var2%% >> source_index.txt
echo SRCSRVTRG=%%HTTP_EXTRACT_TARGET%% >> source_index.txt
echo SRCSRV: source files --------------------------------------- >> source_index.txt

echo:
echo List Root
call source_index_repo.bat

echo:
echo List Submodules
git submodule foreach --recursive cmd //c "%~dp0source_index_repo.bat"

echo:
echo Writing footer...
echo SRCSRV: end ------------------------------------------------ >> source_index.txt

::
:: Update the pdb file with the script section
::

echo:
echo Adding srcsrv section to %1...
"%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\srcsrv\pdbstr.exe" -w -p:%1 -s:srcsrv -i:source_index.txt

popd
endlocal

if %ERRORLEVEL% neq 0 exit /b 1
exit /b 0
33 changes: 33 additions & 0 deletions source_index_repo.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
@echo off

setlocal

:: https://github.com/gorlak/PowerMateTray
for /f "delims=" %%f in ( 'git remote get-url origin' ) do set ORIGIN=%%f

:: remove .git from the path if it's there (.git is the module url but not the source code url)
SET ORIGIN=%ORIGIN:.git=%

:: 297d3d60af11c8749ab8515eec6ab188da3df317
for /f "delims=" %%f in ( 'git rev-parse head' ) do set COMMIT=%%f

:: /gorlak/PowerMateTray/297d3d60af11c8749ab8515eec6ab188da3df317/
SET URL=%ORIGIN:https://github.com=%/%COMMIT%

:: C:\Users\geoff\Projects\gorlak-PowerMateTray\.gitignore*.gitignore
for /f "delims=" %%f in ( 'git ls-files -- *.c *.C *.cc *.cp *.cpp *.cxx *.CPP *.h *.hh *.impl *.inl' ) do (call :PROCESS_FILE "%~dp0source_index.txt" "%%f")

endlocal

exit /b 0

::
:: This is necessary to do some subsitutions that aren't possible with a for /f param
::

:PROCESS_FILE
set TXT=%1
set FILE=%2
set FILE_NOQUOTE=%FILE:"=%
echo %CD%\%FILE_NOQUOTE:/=\%*%URL%/%FILE_NOQUOTE% >> %TXT%
GOTO :eof

0 comments on commit 417428e

Please sign in to comment.