v0.7.0 #37
Workflow file for this run
This file contains hidden or 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: Release | |
| permissions: | |
| contents: write | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| env: | |
| WASI_SDK_VERSION: 33 | |
| RUST_TOOLCHAIN: "1.96.0" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # @v7 | |
| - name: Install WASI SDK | |
| uses: konsumer/install-wasi-sdk@d728b7abb7ef7db1610039d9798a8270e23f56f8 # @v1 | |
| with: | |
| version: "${{ env.WASI_SDK_VERSION }}" | |
| - uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # @v3 | |
| name: Install Just | |
| - name: Install Rust | |
| uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6 # @v1.16.1 | |
| with: | |
| toolchain: "${{ env.RUST_TOOLCHAIN }}" | |
| target: wasm32-wasip1 | |
| - name: Build WebAssembly module | |
| run: just | |
| - name: Build docs | |
| uses: mattnotmitt/doxygen-action@411df0c62acb5b96b8a93d93a7bf4b753c47ea05 # @v1.9.5 | |
| - name: Set env | |
| run: echo "ARCHIVE_FILENAME_PREFIX=fastly-cpp-${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| - name: Install SDK | |
| run: cmake --install target --prefix target/release/dist | |
| - name: Archive core dist | |
| run: tar cvf ${{ env.ARCHIVE_FILENAME_PREFIX }}.tar -C target/release/dist lib include | |
| - name: Archive quickstart dist | |
| run: tar cvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar -C target/release/dist lib include | |
| - name: Add docs and license to quickstart dist | |
| run: tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar docs LICENSE | |
| - name: Add quickstart files to quickstart dist | |
| run: tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar -C quickstart CMakeLists.txt fastly.toml main.cpp README.md .fastlyignore .gitignore | |
| - name: Copy quickstart dist tar to multiple platforms | |
| run: | | |
| cp ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| cp ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| cp ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| cp ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| cp ${{ env.ARCHIVE_FILENAME_PREFIX }}-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-windows-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| - name: Fetch wasi-sdk tarballs | |
| run: | | |
| wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION}}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-linux.tar.gz https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION}}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-macos.tar.gz https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION}}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-linux.tar.gz https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION}}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-macos.tar.gz https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION}}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-windows.tar.gz | |
| - name: Verify checksums | |
| # NB(@zkat): these need to be manually updated every time we upgrade WASI_SDK_VERSION | |
| run: | | |
| /sbin/sha256 -c 4f98ee738c7abb45c81a94d1461fc53cc569d1cd01498951c8184d841a027844 wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-linux.tar.gz | |
| /sbin/sha256 -c 85c997a2665ead91673b5bb88b7d0df3fc8900df3bfa244f720d478187bbdc78 wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-macos.tar.gz | |
| /sbin/sha256 -c 0ba8b5bfaeb2adf3f29bab5841d76cf5318ab8e1642ea195f88baba1abd47bce wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-linux.tar.gz | |
| /sbin/sha256 -c 18f3f201ba9734e6a4455b0b6410690395a55e9ffa9f6f5066f66083a94b93b3 wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-macos.tar.gz | |
| /sbin/sha256 -c df14ca2a2127c2d6b6be07e6f5549b3af9c1b3c0112430c200a4749970c59f06 wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-windows.tar.gz | |
| - name: Extract wasi-sdk tarballs | |
| run: | | |
| tar xvzf wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-linux.tar.gz | |
| tar xvzf wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-macos.tar.gz | |
| tar xvzf wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-linux.tar.gz | |
| tar xvzf wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-macos.tar.gz | |
| tar xvzf wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-windows.tar.gz | |
| - name: Add wasi-sdks into fat quickstart tarballs | |
| run: | | |
| tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-linux | |
| tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-arm64-macos | |
| tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-linux | |
| tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-linux | |
| tar rvf ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-windows-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-x86_64-windows | |
| - name: Gzip tarballs | |
| run: gzip ${{ env.ARCHIVE_FILENAME_PREFIX }}.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-arm64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-linux-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-macos-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar ${{ env.ARCHIVE_FILENAME_PREFIX }}-x86_64-windows-wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-quickstart.tar | |
| - name: Upload tarballs for release job | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # @v7 | |
| with: | |
| name: env-cache-${{ github.run_id }} | |
| retention-days: 7 | |
| path: "${{ env.ARCHIVE_FILENAME_PREFIX }}*.tar.gz" | |
| compression: 0 | |
| release: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Download tarballs to release job | |
| uses: actions/download-artifact@3e5f45b # @v8 | |
| with: | |
| name: env-cache-${{ github.run_id }} | |
| - name: Release action | |
| uses: ncipollo/release-action@339a818 # @v1.21.0 | |
| with: | |
| artifacts: "${{ env.ARCHIVE_FILENAME_PREFIX }}*.tar.gz" | |
| artifactErrorsFailBuild: true | |
| artifactContentType: "application/gzip" | |
| generateReleaseNotes: true | |
| draft: true | |
| prerelease: true |