[SKIP CI] Prerelease #2542
This file contains 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" | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '.github/workflows/**' | |
workflow_dispatch: | |
concurrency: | |
# Same group as prerelease | |
group: publish | |
cancel-in-progress: false | |
jobs: | |
# This gets the commit message because workflow dispatch doesnt set: github.event.head_commit.message | |
pre-ci: | |
runs-on: ubuntu-latest | |
timeout-minutes: 1 | |
outputs: | |
commit-message: ${{ steps.step1.outputs.commit-message }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
# Get the commit message, workflow_dispatch doesn't contain it so we need to get it through git cli | |
- id: step1 | |
run: | | |
if [ -n "${{ github.event.head_commit.message }}" ] | |
then | |
echo "commit-message=${{ github.event.head_commit.message }}" | head -n 1 >> "$GITHUB_OUTPUT" | |
else | |
commit_message=$(git log -1 --pretty=%B | head -n 1) | |
echo "commit-message=$commit_message" >> "$GITHUB_OUTPUT" | |
fi | |
- name: Debug commit message | |
run: | | |
echo "Commit message: ${{ steps.step1.outputs.commit-message }}" | |
Build-Publish: | |
name: Build-Publish | |
needs: pre-ci | |
if: "!startsWith(needs.pre-ci.outputs.commit-message, '[SKIP CI]') && startsWith(needs.pre-ci.outputs.commit-message, '[release]') && github.repository == 'subquery/subql'" | |
runs-on: ubuntu-latest | |
steps: | |
#Check out | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
#Identify changes | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-utils | |
with: | |
paths: packages/utils | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-types-core | |
with: | |
paths: packages/types-core | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-types | |
with: | |
paths: packages/types | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-common | |
with: | |
paths: packages/common | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-common-substrate | |
with: | |
paths: packages/common-substrate | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-cli | |
with: | |
paths: packages/cli | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-node-core | |
with: | |
paths: packages/node-core | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-node | |
with: | |
paths: packages/node | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-query | |
with: | |
paths: packages/query | |
- uses: marceloprado/has-changed-path@v1 | |
id: changed-testing | |
with: | |
paths: packages/testing | |
- run: yarn | |
- name: build | |
run: yarn build | |
#Publish to npm and github releases | |
- name: Publish Utils | |
if: steps.changed-utils.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/utils | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Types-core | |
if: steps.changed-types-core.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/types-core | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Types | |
if: steps.changed-types.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/types | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Common | |
if: steps.changed-common.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/common | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Common Substrate | |
if: steps.changed-common-substrate.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/common-substrate | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Testing | |
if: steps.changed-testing.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/testing | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Node Core | |
if: steps.changed-node-core.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/node-core | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Node | |
if: steps.changed-node.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/node | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Query | |
if: steps.changed-query.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/query | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} | |
- name: Publish Cli | |
if: steps.changed-cli.outputs.changed == 'true' | |
uses: ./.github/actions/create-release | |
with: | |
package-path: packages/cli | |
repo-token: ${{ secrets.REPO_TOKEN }} | |
npm-token: ${{ secrets.NPM_TOKEN }} |