Publish new release #54
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: Publish new release | |
on: workflow_dispatch | |
jobs: | |
build-windows-x64: | |
name: Build Windows x64 | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install deps | |
shell: bash | |
run: | | |
curl https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-cpp-3.20.3.zip -L --output protobuf.zip | |
unzip -q protobuf.zip | |
mv protobuf-3.20.3 protobuf | |
curl https://partner.steamgames.com/downloads/steamworks_sdk_158a.zip --output steamworks_sdk.zip -L | |
unzip -q steamworks_sdk.zip -d steamworks_sdk | |
- name: Build protobuf | |
shell: bash | |
run: | | |
cd protobuf/cmake && mkdir build | |
cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=.\build . | |
cmake --build . --config Release | |
cd ../.. | |
echo "${{ github.workspace }}/protobuf/cmake/Release" >> $GITHUB_PATH | |
- name: Build boiler-writter | |
shell: bash | |
run: | | |
cmake . -DCMAKE_BUILD_TYPE=Release | |
cmake --build . --config Release | |
mkdir tmp && cp -r bin tmp && rm -rf bin && mv tmp bin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: windows-x64 | |
path: bin | |
build-macos-arm64: | |
name: Build macOS ARM64 | |
runs-on: macos-latest-xlarge | |
# TODO enable it when RM64 runners are free for public repos and adjsut the rest of the workflow | |
# https://github.com/actions/runner-images/issues/8439#issuecomment-1755601587 | |
if: false | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install deps | |
run: | | |
curl https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-cpp-3.20.3.zip -L --output protobuf.zip | |
unzip -q protobuf.zip | |
mv protobuf-3.20.3 protobuf | |
curl https://partner.steamgames.com/downloads/steamworks_sdk_158a.zip --output steamworks_sdk.zip -L | |
unzip -q steamworks_sdk.zip -d steamworks_sdk | |
brew install automake autoconf libtool | |
- name: Build protobuf | |
run: | | |
cd protobuf | |
./autogen.sh | |
./configure CXXFLAGS="-DNDEBUG" | |
make -j$(sysctl -n hw.physicalcpu) | |
sudo make install | |
cd .. | |
- name: Build boiler-writter | |
run: | | |
cmake . -DCMAKE_BUILD_TYPE=Release | |
cmake --build . --config Release | |
mkdir tmp && cp -r bin tmp && rm -rf bin && mv tmp bin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macos-arm64 | |
path: bin | |
build-macos-x64: | |
name: Build macOS x64 | |
runs-on: macos-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install deps | |
run: | | |
curl https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-cpp-3.20.3.zip -L --output protobuf.zip | |
unzip -q protobuf.zip | |
mv protobuf-3.20.3 protobuf | |
curl https://partner.steamgames.com/downloads/steamworks_sdk_158a.zip --output steamworks_sdk.zip -L | |
unzip -q steamworks_sdk.zip -d steamworks_sdk | |
brew install automake | |
- name: Build protobuf | |
run: | | |
cd protobuf | |
./autogen.sh | |
./configure CXXFLAGS="-DNDEBUG" | |
make -j$(sysctl -n hw.physicalcpu) | |
sudo make install | |
cd .. | |
- name: Build boiler-writter | |
run: | | |
cmake . -DCMAKE_BUILD_TYPE=Release | |
cmake --build . --config Release | |
mkdir tmp && cp -r bin tmp && rm -rf bin && mv tmp bin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macos-x64 | |
path: bin | |
build-linux-x64: | |
name: Build Linux x64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install deps | |
run: | | |
curl https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-cpp-3.20.3.zip -L --output protobuf.zip | |
unzip -q protobuf.zip | |
mv protobuf-3.20.3 protobuf | |
curl https://partner.steamgames.com/downloads/steamworks_sdk_158a.zip --output steamworks_sdk.zip -L | |
unzip -q steamworks_sdk.zip -d steamworks_sdk | |
sudo apt-get install build-essential autoconf gcc gcc-multilib g++-multilib libtool -y | |
- name: Build protobuf | |
run: | | |
cd protobuf | |
./autogen.sh | |
./configure CXXFLAGS="-DNDEBUG" | |
make -j$(nproc) | |
sudo make install | |
sudo ldconfig | |
cd .. | |
- name: Build boiler-writter | |
run: | | |
cmake . -DCMAKE_BUILD_TYPE=Release | |
cmake --build . --config Release | |
mkdir tmp && cp -r bin tmp && rm -rf bin && mv tmp bin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: linux-x64 | |
path: bin | |
publish-release: | |
name: Publish release | |
runs-on: ubuntu-latest | |
needs: | |
[build-windows-x64, build-macos-x64, build-linux-x64] | |
# [build-windows-x64, build-macos-arm64, build-macos-x64, build-linux-x64] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
- name: Create new version | |
run: | | |
git config --global user.name github-actions | |
git config --global user.email [email protected] | |
npm version minor -m "chore: v%s" | |
echo "VERSION=$(node -p "require('./package.json').version")" >> "$GITHUB_ENV" | |
- name: Build archives | |
run: | | |
cd windows-x64 && zip -r ../"boiler-writter-win-$VERSION.zip" bin && cd - | |
chmod +x macos-x64/bin/boiler-writter | |
cd macos-x64 && zip -r ../"boiler-writter-mac-$VERSION.zip" bin && cd - | |
chmod +x linux-x64/bin/boiler-writter | |
cd linux-x64 && zip -r ../"boiler-writter-linux-$VERSION.zip" bin && cd - | |
# chmod +x macos-arm64/bin/boiler-writter | |
# cd macos-arm64 && zip -r ../"boiler-writter-mac-arm64-$VERSION.zip" bin && cd - | |
- name: Publish NPM | |
run: | | |
mkdir -p dist/bin/{darwin-arm64,darwin-x64,linux-x64,win32-x64} | |
cp windows-x64/bin/* dist/bin/win32-x64 | |
cp macos-x64/bin/* dist/bin/darwin-x64 | |
cp linux-x64/bin/* dist/bin/linux-x64 | |
zip -r "dist-npm.zip" dist | |
# cp macos-arm64/bin/* dist/bin/darwin-arm64 | |
# npm publish --dry-run | |
env: | |
NPM_GITHUB_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_EMAIL: ${{ secrets.NPM_EMAIL }} | |
- name: GitHub Release | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: v${{ env.VERSION }} | |
allowUpdates: true | |
draft: true | |
replacesArtifacts: true | |
artifacts: "boiler-writter-*.zip,dist-npm.zip" | |
# - name: Push the tag to GitHub | |
# run: git push origin main --tags |