diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f508d98..738081f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,9 +16,10 @@ jobs: fail-fast: false matrix: job: - - { target: x86_64-unknown-linux-gnu, os: ubuntu-20.04 } - - { target: x86_64-apple-darwin, os: macos-latest } - - { target: x86_64-pc-windows-msvc, os: windows-2019 } + - { target: x86_64-unknown-linux-gnu, os: ubuntu-20.04, features: default } + - { target: wasm32-wasi, os: ubuntu-20.04, features: "" } + - { target: x86_64-apple-darwin, os: macos-latest, features: default } + - { target: x86_64-pc-windows-msvc, os: windows-2019, features: default } steps: - uses: actions/checkout@v3 @@ -38,31 +39,33 @@ jobs: echo "PROJECT_VERSION=${GITHUB_REF#refs/tags/v}" >> "$GITHUB_ENV" echo "Version: ${{ env.PROJECT_VERSION }}" + - name: Check git tag against toml values + if: ${{ matrix.job.os != 'windows-2019' }} # windows too weird + run: | + grep -q "version = \"$PROJECT_VERSION\"" Cargo.toml + grep -q "version = \"$PROJECT_VERSION\"" wapm.toml + - name: Build release - run: cargo build --locked --verbose --release --target=${{ matrix.job.target }} + run: cargo build --locked --verbose --release --target=${{ matrix.job.target }} --no-default-features --features '${{ matrix.job.features }}' + env: + RUSTFLAGS: -C strip=symbols + + - name: Archive artifacts + uses: actions/upload-artifact@v2 + with: + name: bin-${{ matrix.job.target }} + path: target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ env.EXE_SUFFIX }} - - name: Set up path + - name: Create tarball shell: bash run: | EXE_SUFFIX="" [ "${{ matrix.job.target }}" = "x86_64-pc-windows-msvc" ] && EXE_SUFFIX=".exe" + [ "${{ matrix.job.target }}" = "wasm32-wasi" ] && EXE_SUFFIX=".wasm" + echo "EXE_SUFFIX=${EXE_SUFFIX}" >> "$GITHUB_ENV" BIN_PATH="target/${{ matrix.job.target }}/release/omekasy${EXE_SUFFIX}" - echo "BIN_PATH=${BIN_PATH}" >> "${GITHUB_ENV}" - - - name: Strip binary - shell: bash - run: | - STRIP="strip" - [ "${{ matrix.job.target }}" = "x86_64-pc-windows-msvc" ] && STRIP="" - - if [ -n "${STRIP}" ]; then - "${STRIP}" "${{ env.BIN_PATH }}" - fi - - name: Create tarball - shell: bash - run: | PKG_SUFFIX=".tar.gz" ; case "${{ matrix.job.target }}" in *-pc-windows-*) PKG_SUFFIX=".zip" ;; esac; PKG_BASENAME="${PROJECT_NAME}-v${{ env.PROJECT_VERSION }}-${{ matrix.job.target }}" PKG_PATH="${PKG_BASENAME}${PKG_SUFFIX}" @@ -71,7 +74,7 @@ jobs: PKG_DIR="archive" mkdir -p "${PKG_DIR}" cp {README.md,LICENSE} "$PKG_DIR" - cp "${{ env.BIN_PATH }}" "${PKG_DIR}" + cp "${BIN_PATH}" "${PKG_DIR}" if [ "${{ matrix.job.os }}" = "windows-2019" ]; then 7z a "${PKG_PATH}" "${PKG_DIR}" @@ -102,3 +105,19 @@ jobs: git config --global user.email "runner@gha.local" git config --global user.name "Github Action" cargo publish --allow-dirty --token ${{ secrets.CRATES_IO_TOKEN }} + + wapm-publish: + runs-on: ubuntu-20.04 + needs: release + steps: + - name: Setup Wasmer + uses: wasmerio/setup-wasmer@v1 + - uses: actions/checkout@v2 + - uses: actions/download-artifact@v3 + with: + name: bin-wasm32-wasi + path: target/wasm32-wasi/release + - name: WAPM publish + run: wapm publish + env: + WAPM_REGISTRY_TOKEN: ${{ secrets.WAPM_REGISTRY_TOKEN }} diff --git a/wapm.toml b/wapm.toml new file mode 100644 index 0000000..2ebc17a --- /dev/null +++ b/wapm.toml @@ -0,0 +1,19 @@ +[package] +name = "ikanago/omekasy" +version = "1.1.0" +description = "π˜Ύπ™€π™’π™’π™–π™£π™™ π™‘π™žπ™£π™š 𝙖π™₯π™₯π™‘π™žπ™˜π™–π™©π™žπ™€π™£ π•₯𝕙𝕒π•₯ π•”π• π•Ÿπ•§π•–π•£π•₯𝕀 π•’π•π•‘π•™π•’π•Ÿπ•¦π•žπ•–π•£π•šπ•” 𝕔𝕙𝕒𝕣𝕒𝕔π•₯𝕖𝕣𝕀 𝒕𝒐 π’—π’‚π’“π’Šπ’π’–π’” π’”π’•π’šπ’π’†π’” πšπšŽπšπš’πš—πšŽπš πš’πš— πš„πš—πš’πšŒπš˜πšπšŽ." +license = "MIT" +repository = "https://github.com/ikanago/omekasy" +readme = "README.md" + +[[module]] +name = "omekasy" +source = "target/wasm32-wasi/release/omekasy.wasm" +abi = "wasi" + +[module.interfaces] +wasi = "0.1.0-unstable" + +[[command]] +name = "omekasy" +module = "omekasy"