Skip to content

Quiet!

Quiet! #149

Workflow file for this run

name: Build ceramic
on:
push:
tags:
- v**
jobs:
build-ceramic-windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Checkout submodules
run: git submodule update --init --recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '14.19.1'
- name: Setup NPM
working-directory: .
run: |
npm install -g [email protected]
- name: Setup Haxe
working-directory: .
run: |
$NEKOPATH = $(Convert-Path .)+'/git/haxe-binary/windows/neko'
$HAXEPATH = $(Convert-Path .)+'/git/haxe-binary/windows/haxe'
echo $NEKOPATH >> $GITHUB_PATH
echo $HAXEPATH >> $GITHUB_PATH
echo $NEKOPATH
echo $HAXEPATH
- name: Build ceramic
working-directory: ./node
run: |
npm ci
cd ../tools
./npm ci
./node post-install.js
cd ../runner
../tools/npm ci
cd ..
- name: Cleanup
working-directory: .
run: |
Remove-Item 'git/haxe-binary/linux' -Recurse
Remove-Item 'git/haxe-binary/mac' -Recurse
cd tools
Remove-Item './npm'
Remove-Item './npx'
Remove-Item './node'
Remove-Item './haxe'
Remove-Item './haxelib'
Remove-Item './neko'
Remove-Item './ceramic'
cd ..
- name: Run ceramic
working-directory: ./tools
run: |
./ceramic
- name: Check ceramic version
working-directory: ./tools
run: |
$GIT_TAG = $($env:GITHUB_REF).replace("refs/tags/", "")
./ceramic version --check-tag $GIT_TAG
- name: Create zip archive
working-directory: .
run: |
$ZIP_COMPRESS = $(Convert-Path .)
$ZIP_EXCLUDE = @(".git", ".github", "ceramic-windows.zip")
$ZIP_DESTINATION = 'ceramic-windows.zip'
$ZIP_FILES = Get-ChildItem -Path $ZIP_COMPRESS -Exclude $ZIP_EXCLUDE
Compress-Archive -Path $ZIP_FILES -DestinationPath $ZIP_DESTINATION -CompressionLevel Optimal
- name: Upload Files
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: ceramic-windows.zip
path: ceramic-windows.zip
compression-level: 0
build-ceramic-mac:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Checkout submodules
run: git submodule update --init --recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '14.19.1'
architecture: 'x64'
- name: Setup NPM
working-directory: .
run: |
sudo npm install -g [email protected]
- name: Setup Haxe
working-directory: .
run: |
set -ex
export NEKOPATH=$PWD'/git/haxe-binary/mac/neko'
export HAXEPATH=$PWD'/git/haxe-binary/mac/haxe'
echo 'neko path: '$NEKOPATH
echo 'haxe path: '$HAXEPATH
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/share/haxe
sudo ln -s $HAXEPATH/haxe /usr/local/bin/haxe
sudo ln -s $HAXEPATH/haxelib /usr/local/bin/haxelib
sudo ln -s $HAXEPATH/haxe-bin /usr/local/bin/haxe-bin
sudo ln -s $HAXEPATH/haxelib-bin /usr/local/bin/haxelib-bin
sudo ln -s $HAXEPATH/std /usr/local/share/haxe/std
sudo ln -s $NEKOPATH/neko /usr/local/bin/neko
sudo ln -s $NEKOPATH/nekoc /usr/local/bin/nekoc
sudo ln -s $NEKOPATH/nekoml /usr/local/bin/nekoml
sudo ln -s $NEKOPATH/nekotools /usr/local/bin/nekotools
sudo ln -s $NEKOPATH /usr/local/lib/neko
sudo ln -s $NEKOPATH/libneko.dylib /usr/local/lib/libneko.dylib
sudo ln -s $NEKOPATH/libneko.2.4.0.dylib /usr/local/lib/libneko.2.4.0.dylib
sudo ln -s $NEKOPATH/libneko.2.dylib /usr/local/lib/libneko.2.dylib
set +x
echo 'neko: '$(neko -version)
echo 'haxe: '$(haxe --version)
- name: Extract node binaries and modules
run: |
mkdir -p tmp-ceramic
curl -L -s https://github.com/ceramic-engine/ceramic/releases/download/v1.5.0/ceramic-mac.zip -o tmp-ceramic.zip
unzip -q tmp-ceramic.zip -d tmp-ceramic
rm -rf ./node
rm -rf ./tools/node_modules
cp -R ./tmp-ceramic/node ./
cp -R ./tmp-ceramic/tools/node_modules ./tools/
rm -rf tmp-ceramic
rm tmp-ceramic.zip
- name: Build ceramic
working-directory: ./node
run: |
npm ci
cd ../tools
./node post-install.js
cd ../runner
../tools/npm ci
cd ..
- name: Cleanup
working-directory: .
run: |
rm -rf git/haxe-binary/linux
rm -rf git/haxe-binary/windows
cd tools
rm -f ./npm.cmd
rm -f ./npx.cmd
rm -f ./node.cmd
rm -f ./haxe.cmd
rm -f ./neko.cmd
rm -f ./ceramic.cmd
cd ..
- name: Run ceramic
working-directory: ./tools
run: |
./ceramic
- name: Check ceramic version
working-directory: ./tools
run: |
GIT_TAG=${GITHUB_REF/refs\/tags\//}
./ceramic version --check-tag $GIT_TAG
- name: Create zip archive
run: zip --symlinks -9 -r 'ceramic-mac.zip' . -x ".git/*" ".github/*"
- name: Upload Files
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: ceramic-mac.zip
path: ceramic-mac.zip
compression-level: 0
build-ceramic-linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Checkout submodules
run: git submodule update --init --recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '14.19.1'
- name: Setup NPM
working-directory: .
run: |
sudo npm install -g [email protected]
- name: Setup Haxe
working-directory: .
run: |
export NEKOPATH=$PWD'/git/haxe-binary/linux/neko'
export HAXEPATH=$PWD'/git/haxe-binary/linux/haxe'
echo 'neko path: '$NEKOPATH
echo 'haxe path: '$HAXEPATH
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/share/haxe
sudo ln -s $HAXEPATH/haxe /usr/local/bin/haxe
sudo ln -s $HAXEPATH/haxelib /usr/local/bin/haxelib
sudo ln -s $HAXEPATH/haxe-bin /usr/local/bin/haxe-bin
sudo ln -s $HAXEPATH/haxelib-bin /usr/local/bin/haxelib-bin
sudo ln -s $HAXEPATH/std /usr/local/share/haxe/std
sudo ln -s $NEKOPATH/neko /usr/local/bin/neko
sudo ln -s $NEKOPATH/nekoc /usr/local/bin/nekoc
sudo ln -s $NEKOPATH/nekoml /usr/local/bin/nekoml
sudo ln -s $NEKOPATH/nekotools /usr/local/bin/nekotools
sudo ln -s $NEKOPATH /usr/local/lib/neko
sudo ln -s $NEKOPATH/libneko.so /usr/local/lib/libneko.so
sudo ln -s $NEKOPATH/libneko.so.2.3.0 /usr/local/lib/libneko.so.2.3.0
sudo ln -s $NEKOPATH/libneko.so.2 /usr/local/lib/libneko.so.2
sudo ldconfig
sudo ldconfig /usr/local/lib
echo 'neko: '$(neko -version)
echo 'haxe: '$(haxe --version)
- name: Build ceramic
working-directory: ./node
run: |
npm ci
cd ../tools
./npm ci
./node post-install.js
cd ../runner
../tools/npm ci
cd ..
- name: Cleanup
working-directory: .
run: |
rm -rf git/haxe-binary/mac
rm -rf git/haxe-binary/windows
cd tools
rm -f ./npm.cmd
rm -f ./npx.cmd
rm -f ./node.cmd
rm -f ./haxe.cmd
rm -f ./neko.cmd
rm -f ./ceramic.cmd
cd ..
- name: Run ceramic
working-directory: ./tools
run: |
./ceramic
- name: Check ceramic version
working-directory: ./tools
run: |
GIT_TAG=${GITHUB_REF/refs\/tags\//}
./ceramic version --check-tag $GIT_TAG
- name: Create zip archive
run: zip --symlinks -9 -r 'ceramic-linux.zip' . -x ".git/*" ".github/*"
- name: Upload Files
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: ceramic-linux.zip
path: ceramic-linux.zip
compression-level: 0
create-release:
needs: [build-ceramic-windows, build-ceramic-mac, build-ceramic-linux]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Download ceramic-windows.zip
uses: actions/download-artifact@v4
with:
name: ceramic-windows.zip
path: .
- name: Download ceramic-mac.zip
uses: actions/download-artifact@v4
with:
name: ceramic-mac.zip
path: .
- name: Download ceramic-linux.zip
uses: actions/download-artifact@v4
with:
name: ceramic-linux.zip
path: .
- name: Extract tag name
id: extract_tag
run: echo "TAG_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref }}
name: Ceramic ${{ env.TAG_NAME }}
body: |
Ceramic ${{ env.TAG_NAME }}
draft: false
prerelease: false
files: |
ceramic-windows.zip
ceramic-mac.zip
ceramic-linux.zip
generate-api-docs:
needs: [create-release]
runs-on: ubuntu-22.04
steps:
- name: Dispatch event
uses: ceramic-engine/repository-dispatch@v1
with:
token: ${{ secrets.PAT_PUBLIC }}
repository: ceramic-engine/api-docs
event-type: deploy-api-docs
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'