diff --git a/.github/workflows/enforce-pr-labels.yml b/.github/workflows/enforce-pr-labels.yml new file mode 100644 index 000000000..75e70659b --- /dev/null +++ b/.github/workflows/enforce-pr-labels.yml @@ -0,0 +1,21 @@ +name: Enforce PR labels + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-noteworthiness-label: + runs-on: ubuntu-latest + steps: + - uses: yogevbd/enforce-label-action@2.2.2 + with: + REQUIRED_LABELS_ANY: "B0-silent,B5-clientnoteworthy,B7-runtimenoteworthy" + REQUIRED_LABELS_ALL: "" + BANNED_LABELS: "" + - name: Verify breaking changes label + if: contains(github.event.pull_request.labels.*.name, 'B5-clientnoteworthy') || contains(github.event.pull_request.labels.*.name, 'B7-runtimenoteworthy') + uses: yogevbd/enforce-label-action@2.2.2 + with: + REQUIRED_LABELS_ANY: "breaking,not-breaking" + REQUIRED_LABELS_ALL: "" + BANNED_LABELS: "" \ No newline at end of file diff --git a/.github/workflows/prepare-binary.yml b/.github/workflows/prepare-binary.yml new file mode 100644 index 000000000..5e653dec8 --- /dev/null +++ b/.github/workflows/prepare-binary.yml @@ -0,0 +1,115 @@ +name: Prepare Optimized Binary Draft (internal only) + +# The code (like generate-release-body) will be taken from the tag version, not master +on: + workflow_dispatch: + inputs: + sha: + description: full sha to build the binary from + required: true + +jobs: + ####### Building binaries ####### + + build-binary: + runs-on: bare-metal + strategy: + matrix: + cpu: ["", "skylake"] + env: + RUSTFLAGS: "-C target-cpu=${{ matrix.cpu }}" + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.sha }} + - name: Setup Rust toolchain + run: rustup show + - name: Build Node + run: cargo build --profile=production --all + - name: Save parachain binary + if: ${{ matrix.cpu == '' }} + run: | + mkdir -p binaries + cp target/production/tanssi-node binaries/tanssi-node + cp target/production/container-chain-template-frontier-node binaries/container-chain-template-frontier-node + cp target/production/container-chain-template-simple-node binaries/container-chain-template-simple-node + - name: Save parachain custom binary + if: ${{ matrix.cpu != '' }} + run: | + mkdir -p binaries + cp target/production/tanssi-node binaries/tanssi-node-${{matrix.cpu}} + cp target/production/container-chain-template-frontier-node binaries/container-chain-template-frontier-node-${{matrix.cpu}} + cp target/production/container-chain-template-simple-node binaries/container-chain-template-simple-node-${{matrix.cpu}} + - name: Upload binary + uses: actions/upload-artifact@v3.1.2 + with: + name: binaries + path: binaries + + ####### Prepare the release draft ####### + docker-tanssi: + runs-on: ubuntu-latest + needs: ["build-binary"] + strategy: + matrix: + image: ["tanssi", "container-chain-simple-template", "container-chain-evm-template"] + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.sha }} + - uses: actions/download-artifact@v3.0.2 + with: + name: binaries + path: build + - name: Prepare + id: prep + run: | + DOCKER_IMAGE=moondancelabs/${{matrix.image}} + SHA8="$(git log -1 --format="%H" | cut -c1-8)" + TAGS="${DOCKER_IMAGE}:sha-${SHA8}-opt" + echo "tags=${TAGS}" >> $GITHUB_OUTPUT + echo "created=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT + - name: Set up QEMU + uses: docker/setup-qemu-action@v2.1.0 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.5.0 + with: + version: latest + driver-opts: | + image=moby/buildkit:master + - name: Login to DockerHub + uses: docker/login-action@v2.2.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + context: . + file: ./docker/${{matrix.image}}.Dockerfile + platforms: linux/amd64 + push: true + tags: ${{ steps.prep.outputs.tags }} + labels: | + org.opencontainers.image.title=${{ github.event.repository.name }} + org.opencontainers.image.description=${{ github.event.repository.description }} + org.opencontainers.image.url=${{ github.event.repository.html_url }} + org.opencontainers.image.source=${{ github.event.repository.clone_url }} + org.opencontainers.image.created=${{ steps.prep.outputs.created }} + org.opencontainers.image.revision=${{ github.sha }} + org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }} + + - name: Login to DockerHub + uses: docker/login-action@v2.2.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Tag it with moondance-labs for 6 month + run: | + MOONDANCELABS_TAG=`echo "${{ steps.prep.outputs.tags }}"` + docker pull ${{ steps.prep.outputs.tags }} + docker tag ${{ steps.prep.outputs.tags }} $MOONDANCELABS_TAG + docker push $MOONDANCELABS_TAG \ No newline at end of file diff --git a/.github/workflows/publish-runtime.yml b/.github/workflows/publish-runtime.yml index 32049f9f9..f995db923 100644 --- a/.github/workflows/publish-runtime.yml +++ b/.github/workflows/publish-runtime.yml @@ -68,9 +68,9 @@ jobs: matrix: chain: ${{ fromJson(needs.matrix_prep.outputs.matrix_tests) }} srtool_image: - - purestake/srtool + - moonbeamfoundation/srtool srtool_image_tag: - - 1.69.0 + - 1.70.0 steps: - uses: actions/checkout@v3 with: diff --git a/tools/github/generate-release-body.ts b/tools/github/generate-release-body.ts index 107b55096..108b109fa 100644 --- a/tools/github/generate-release-body.ts +++ b/tools/github/generate-release-body.ts @@ -45,7 +45,7 @@ async function main() { const previousTag = argv.from; const newTag = argv.to; - const moduleLinks = ["substrate", "polkadot", "cumulus", "frontier"].map((repoName) => ({ + const moduleLinks = ["polkadot-sdk", "frontier"].map((repoName) => ({ name: repoName, link: getCompareLink(repoName, previousTag, newTag), }));