diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..c79e7ed --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,36 @@ +name: Publish release + +on: + create: + tags: + - v* + +jobs: + test: + uses: ./.github/workflows/test.yaml + + release: + needs: test + + runs-on: ubuntu-latest + + container: + image: nearprotocol/contract-builder + options: --cap-add=SYS_PTRACE --security-opt seccomp=unconfined + env: + RUSTFLAGS: -C link-arg=-s + + steps: + - uses: actions/checkout@v2 + - name: Build + run: | + rustup toolchain install stable + rustup default stable + rustup target add wasm32-unknown-unknown + cargo build --target wasm32-unknown-unknown --profile release + mv target/wasm32-unknown-unknown/release/usdt_gold.wasm target/usdt_gold.wasm + - name: Publish + uses: ncipollo/release-action@v1 + with: + artifacts: "target/usdt_gold.wasm" + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..90e56e2 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,26 @@ +name: Run tests + +on: + workflow_call: + + push: + branches: + - main + + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Run Rustfmt + run: cargo fmt -- --check + - name: Run unit tests + run: cargo test --verbose + - name: Install NPM dependencies + run: npm install + - name: Build + run: npm run build diff --git a/package.json b/package.json index ef0ae4c..3c63137 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,8 @@ { "name": "usdt-gold", "scripts": { + "prebuild": "rustup target add wasm32-unknown-unknown", + "build": "cargo build --target wasm32-unknown-unknown --release", "deploy": "./scripts/deploy.sh", "demo": "./scripts/demo.sh", "upgrade": "node scripts/upgrade.js"