diff --git a/.github/workflows/benchmarking.yml b/.github/workflows/benchmarking.yml new file mode 100644 index 0000000..8e7fe5a --- /dev/null +++ b/.github/workflows/benchmarking.yml @@ -0,0 +1,53 @@ +name: Benchmarks + +on: + workflow_dispatch: + +jobs: + build: + name: Build Target + runs-on: [self-hosted, builder] + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: target + key: ${{ runner.os }}-target-cache + - run: just build-local runtime-benchmarks + - uses: actions/upload-artifact@v4 + with: + name: ${{ github.run_number }}-virto-node + path: ./target/release/virto-node + + benchmark: + name: Run Benchmarks + needs: build + runs-on: [self-hosted, benchmarks] + permissions: + contents: write + pull-requests: write + steps: + - uses: actions/checkout@v4 + - run: | + mkdir -p .benchmarking-logs target/release + - uses: actions/download-artifact@v4 + with: + name: ${{ github.run_number }}-virto-node + path: ./target/release + - run: | + just benchmarks + - uses: actions/upload-artifact@v4 + with: + name: ${{ github.run_id }}-benchmark_logs + path: ./.benchmarking-logs + - uses: peter-evans/create-pull-request@v6 + with: + add-paths: runtime/kreivo/src/weights + commit-message: '[ci] calculate weights' + branch: benchmarks + branch-suffix: short-commit-hash + title: "Benchmarking: Calculate weights for ${{ github.sha }}" + body: | + This Pull Request is automatically raised when pushing over `master` + and should be resolved and reviewed manually. + assignees: ${{ github.actor_id }} diff --git a/.github/workflows/check-pr.yml b/.github/workflows/check-pr.yml new file mode 100644 index 0000000..96b1c35 --- /dev/null +++ b/.github/workflows/check-pr.yml @@ -0,0 +1,28 @@ +name: Checks + +on: + pull_request: + +jobs: + build: + name: Check lint + runs-on: [self-hosted, builder] + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: target + key: ${{ runner.os }}-${{ github.ref }}-target-cache + - run: just check + + tests: + name: Check project + runs-on: [self-hosted, builder] + needs: build + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: target + key: ${{ runner.os }}-${{ github.ref }}-target-cache + - run: just test \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e9227f3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,46 @@ +name: Release tag + +on: + push: + tags: + - '*' + +jobs: + build: + name: Build node + runs-on: [self-hosted, builder] + steps: + - uses: actions/checkout@v4 + + - name: Build parachain node & artifacts + run: just build-container-local + + release: + name: Create GH Release + needs: build + runs-on: [self-hosted, builder] + steps: + - name: Build collator artifacts + run: just release-artifacts + - name: Build full-node artifacts + run: just rol=full release-artifacts + - name: Release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: | + release/* + + container: + name: Containerize & Publish + needs: build + runs-on: [self-hosted, builder] + steps: + - name: Login to registry + run: echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.actor }} --password-stdin + + - name: Publish image + run: | + podman push ghcr.io/virto-network/virto:$(just version) + podman push ghcr.io/virto-network/virto:latest diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..f2f280c --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,15 @@ +name: Test parachain + +on: + push: + branches: + - master + +jobs: + build: + name: Build project + runs-on: self-hosted + steps: + - uses: actions/checkout@v4 + - name: Test parachain + run: echo test #TODO: change for integration test when available