name: main on: workflow_dispatch: push: tags: - '*' jobs: create_release: name: Create release runs-on: ubuntu-latest outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} steps: - name: Create release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ github.token }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: false prerelease: false build_linux: name: "linux build: ${{ matrix.arch }}" runs-on: ubuntu-20.04 # use older version on purpose for GLIBC needs: create_release # we need to know the upload URL strategy: fail-fast: true matrix: arch: [x64, aarch64, armv7] steps: - uses: actions/checkout@v3 - name: configure run: | export CFLAGS='-D_FILE_OFFSET_BITS=64' && \ ./autogen.sh && \ ./configure \ --without-pcaudiolib \ --without-klatt \ --without-speechplayer \ --without-mbrola \ --without-sonic \ --with-extdict-cmn \ --with-extdict-ru \ --prefix=$PWD/_install/espeak-ng - name: make run: | make - name: install run: | make install - name: package run: | cd _install && \ tar -czf linux_${{ matrix.arch }}.tar.gz espeak-ng/ - name: upload uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ needs.create_release.outputs.upload_url }} asset_path: _install/linux_${{ matrix.arch }}.tar.gz asset_name: linux_${{ matrix.arch }}.tar.gz asset_content_type: application/octet-stream build_windows: name: "windows build: ${{ matrix.arch }}" runs-on: windows-latest needs: create_release # we need to know the upload URL strategy: fail-fast: true matrix: arch: [x64] steps: - uses: actions/checkout@v3 - name: configure run: | cmake -Bbuild -DCMAKE_INSTALL_PREFIX=_install/espeak-ng -DUSE_ASYNC:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DUSE_MBROLA:BOOL=OFF -DUSE_LIBSONIC:BOOL=OFF -DUSE_LIBPCAUDIO:BOOL=OFF -DUSE_KLATT:BOOL=OFF -DUSE_SPEECHPLAYER:BOOL=OFF -DEXTRA_cmn:BOOL=ON -DEXTRA_ru:BOOL=ON - name: build run: | cmake --build build --config Release - name: install run: | cmake --install build - name: package run: | cd _install Compress-Archive -LiteralPath espeak-ng -DestinationPath windows_amd64.zip - name: upload uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ needs.create_release.outputs.upload_url }} asset_path: _install/windows_amd64.zip asset_name: windows_amd64.zip asset_content_type: application/zip