Remove creation of dirs from build #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build & Publish | |
on: | |
push: | |
paths-ignore: | |
- "docs/**" | |
branches: ["main", "dev"] | |
pull_request: | |
branches: ["main", "dev"] | |
env: | |
BUILD_TYPE: Release | |
jobs: | |
setup: | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
outputs: | |
buildnumber: ${{ steps.buildnumber.outputs.build_number }} | |
steps: | |
- name: Generate build number | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
id: buildnumber | |
uses: onyxmueller/build-tag-number@v1 | |
with: | |
token: ${{secrets.github_token}} | |
build_windows: | |
needs: setup | |
runs-on: windows-latest | |
steps: | |
- name: Prepare env | |
shell: bash | |
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV | |
- name: Fallback build number | |
if: ${{ github.event_name == 'pull_request' || github.ref != 'refs/heads/main' }} | |
shell: bash | |
run: echo "BUILD_NUMBER=0" >> $GITHUB_ENV | |
- name: Main build number | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
run: echo "BUILD_NUMBER=${{ needs.setup.outputs.buildnumber }}" >> $GITHUB_ENV | |
- name: Visual Studio environment | |
shell: cmd | |
run: | | |
:: See https://github.com/microsoft/vswhere/wiki/Find-VC | |
for /f "usebackq delims=*" %%i in (`vswhere -latest -property installationPath`) do ( | |
call "%%i"\Common7\Tools\vsdevcmd.bat -arch=x64 -host_arch=x64 | |
) | |
:: Loop over all environment variables and make them global. | |
for /f "delims== tokens=1,2" %%a in ('set') do ( | |
echo>>"%GITHUB_ENV%" %%a=%%b | |
) | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "recursive" | |
- name: Build | |
run: | | |
mkdir -p build | |
cd build | |
cmake -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DPLUGIFY_PROJECT_VERSION="${{ env.BUILD_NUMBER }}" .. | |
cmake --build . --target cs2-plugify --config ${{env.BUILD_TYPE}} -- /m:16 | |
- name: Clean build directory | |
run: | | |
echo Metamod Plugin > build/addons/metamod/plugify.vdf | |
echo { >> build/addons/metamod/plugify.vdf | |
echo. "alias" "plugify" >> build/addons/metamod/plugify.vdf | |
echo. "file" "addons/plugify/bin/win64/plugify" >> build/addons/metamod/plugify.vdf | |
echo } >> build/addons/metamod/plugify.vdf | |
mv build/${{env.BUILD_TYPE}}/*.dll build/addons/plugify/bin/win64 | |
mkdir build/output/ | |
mv build/addons build/output | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: plugify-build-windows-${{ env.GITHUB_SHA_SHORT }} | |
path: build/output/ | |
build_linux: | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Prepare env | |
shell: bash | |
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV | |
- name: Fallback build number | |
if: ${{ github.event_name == 'pull_request' || github.ref != 'refs/heads/main' }} | |
shell: bash | |
run: echo "BUILD_NUMBER=0" >> $GITHUB_ENV | |
- name: Main build number | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
run: echo "BUILD_NUMBER=${{ needs.setup.outputs.buildnumber }}" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "recursive" | |
- name: Install CURL | |
run: sudo apt install -y libcurl4-openssl-dev | |
- name: Build | |
run: | | |
mkdir -p build | |
cd build | |
cmake -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DPLUGIFY_PROJECT_VERSION="${{ env.BUILD_NUMBER }}" .. | |
cmake --build . --target cs2-plugify --config ${{env.BUILD_TYPE}} -- -j16 | |
- name: Clean build directory | |
run: | | |
mkdir build/output/ | |
mv build/addons build/output | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: plugify-build-linux-${{ env.GITHUB_SHA_SHORT }} | |
path: build/output/ | |
publish: | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | |
permissions: | |
contents: write | |
needs: ["setup", "build_linux", "build_windows"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Prepare env | |
shell: bash | |
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v3 | |
with: | |
name: plugify-build-windows-${{ env.GITHUB_SHA_SHORT }} | |
path: build/windows | |
- uses: actions/download-artifact@v3 | |
with: | |
name: plugify-build-linux-${{ env.GITHUB_SHA_SHORT }} | |
path: build/linux | |
- name: Zip Builds | |
run: | | |
(cd build/linux && zip -qq -r ../../plugify-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *) | |
(cd build/windows && zip -qq -r ../../plugify-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *) | |
- name: Release | |
id: release | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: v${{ needs.setup.outputs.buildnumber }} | |
files: | | |
plugify-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip | |
plugify-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip | |
- name: Send Notification to Discord | |
env: | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
uses: Ilshidur/[email protected] | |
with: | |
args: "A new release of CS2-Plugify has been tagged (v${{ needs.setup.outputs.buildnumber }}) at ${{ steps.release.outputs.url }}" |