Merge pull request #1458 from EdnessP/master #12
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
# github workflow to automate builds | |
name: WebAssembly build | |
on: [push, pull_request, workflow_dispatch] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
EM_VERSION: 3.1.24 | |
EM_CACHE_FOLDER: 'emsdk-cache' | |
jobs: | |
build: | |
name: CMake, WebAssembly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Fetch Git tags | |
run: | | |
git fetch --prune --unshallow --tags | |
- name: Setup emsdk | |
uses: mymindstorm/setup-emsdk@v11 | |
with: | |
version: ${{env.EM_VERSION}} | |
actions-cache-folder: ${{env.EM_CACHE_FOLDER}} | |
- name: Create build environment | |
run: cmake -E make_directory ${{runner.workspace}}/embuild | |
- name: Cache celt | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/dependencies/celt-0061 | |
${{runner.workspace}}/dependencies/celt-0110 | |
${{runner.workspace}}/embuild/dependencies/celt-0061/libcelt/.libs | |
${{runner.workspace}}/embuild/dependencies/celt-0110/libcelt/.libs | |
key: wasm-celt-${{ hashFiles('cmake/dependencies/celt.cmake') }} | |
- name: Cache ffmpeg | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/ffmpeg/bin/usr/local/include | |
${{runner.workspace}}/embuild/dependencies/ffmpeg/bin/usr/local/lib | |
key: wasm-ffmpeg-${{ hashFiles('cmake/dependencies/ffmpeg.cmake') }} | |
- name: Cache jansson | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/jansson/src/.libs | |
key: wasm-jansson-${{ hashFiles('cmake/dependencies/jansson.cmake') }} | |
- name: Cache atrac9 | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/LibAtrac9/bin | |
key: wasm-atrac9-${{ hashFiles('cmake/dependencies/atrac9.cmake') }} | |
- name: Cache g719 | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/libg719_decode/libg719_decode.a | |
key: wasm-g719-${{ hashFiles('cmake/dependencies/g719.cmake') }} | |
- name: Cache mpg123 | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/dependencies/mpg123 | |
${{runner.workspace}}/embuild/dependencies/mpg123/src/libmpg123/.libs | |
key: wasm-mpg123-${{ hashFiles('cmake/dependencies/mpg123.cmake') }} | |
- name: Cache speex | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/speex/libspeex/.libs | |
key: wasm-speex-${{ hashFiles('cmake/dependencies/speex.cmake') }} | |
- name: Cache ogg | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/ogg/libogg.a | |
${{runner.workspace}}/embuild/dependencies/ogg/include | |
key: wasm-ogg-${{ hashFiles('cmake/dependencies/ogg.cmake') }} | |
- name: Cache vorbis | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/dependencies/vorbis/lib/*.a | |
key: wasm-vorbis-${{ hashFiles('cmake/dependencies/vorbis.cmake') }} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/embuild | |
run: emcmake cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE | |
- name: Build | |
working-directory: ${{runner.workspace}}/embuild | |
shell: bash | |
run: emmake make | |
- name: Upload WebAssembly artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
path: | | |
${{runner.workspace}}/embuild/cli/vgmstream-cli.js | |
${{runner.workspace}}/embuild/cli/vgmstream-cli.wasm | |
name: vgmstream-wasm | |
# uploads current assets to vgmstream-releases (token only works on merges) | |
- name: Upload artifacts to vgmstream-releases | |
if: github.event_name != 'pull_request' | |
working-directory: ${{github.workspace}} | |
env: | |
UPLOADER_GITHUB_TOKEN: ${{ secrets.UPLOADER_GITHUB_TOKEN }} | |
run: | | |
python .github/uploader.py ${{runner.workspace}}/embuild/cli/vgmstream-cli.js ${{runner.workspace}}/embuild/cli/vgmstream-cli.wasm | |
#- name: Upload artifacts to S3 | |
# if: github.event_name != 'pull_request' | |
# working-directory: ${{runner.workspace}}/embuild/cli | |
# shell: bash | |
# env: | |
# AWS_DEFAULT_REGION: us-west-1 | |
# AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}} | |
# AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}} | |
# run: | | |
# echo ${{github.sha}} | tee latest_id | |
# aws s3 cp ${{runner.workspace}}/embuild/cli/vgmstream-cli.js s3://vgmstream-builds/js/vgmstream-cli.js --acl public-read | |
# aws s3 cp ${{runner.workspace}}/embuild/cli/vgmstream-cli.wasm s3://vgmstream-builds/js/vgmstream-cli.wasm --acl public-read | |
# aws s3 cp latest_id s3://vgmstream-builds/js/version --acl public-read |