chore: remove call ops in tx summary (#3734) #1630
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: | |
- master | |
- release/* | |
concurrency: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
environment: fuel-fuels-ts-bot | |
permissions: write-all | |
# First check ensures that the workflow runs only when the changesets PR commit is pushed into the branch. | |
# Second check ensures that the workflow runs only after a commit is pushed into the branch, | |
# and not when the branch is created. | |
# This is to avoid running the workflow when a release/* branch is created. | |
if: | | |
github.event.head_commit.message == 'ci(release): versioning packages and changesets' && | |
github.event.before != '0000000000000000000000000000000000000000' | |
steps: | |
- name: Create Fuel Docs GitHub Token | |
uses: actions/create-github-app-token@v1 | |
id: docs-token | |
with: | |
app-id: ${{ vars.FUEL_DOCS_BOT_APP_ID }} | |
private-key: ${{ secrets.FUEL_DOCS_BOT_APP_KEY }} | |
owner: ${{ github.repository_owner }} | |
repositories: | | |
docs-hub | |
migrations-and-disclosures | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
- name: CI Setup | |
uses: ./.github/actions/ci-setup | |
# if there are changesets present, package.json will be bumped | |
- name: Bump and Collect Versions | |
run: | | |
pnpm changeset version | |
echo "RELEASE_VERSION=v$(sed -nE 's/^\s*"version": "(.*?)",$/\1/p' packages/fuels/package.json)" >> $GITHUB_ENV | |
echo "FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)" >> $GITHUB_ENV | |
echo "FORC_VERSION=$(cat ./internal/forc/VERSION)" >> $GITHUB_ENV | |
git reset --hard | |
- name: Ensure NPM access | |
run: npm whoami | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_TOKEN }} | |
- name: Build | |
run: pnpm build | |
- name: Get latest release | |
run: | | |
LATEST_RELEASE=$(pnpm run --silent changeset:get-latest-release) | |
echo "LATEST_RELEASE=$LATEST_RELEASE" >> $GITHUB_ENV | |
pnpm add --global semver | |
echo "RELEASE_VERSION_HIGHER_THAN_LATEST=$(semver $LATEST_RELEASE $RELEASE_VERSION | tail -n1 | grep ${RELEASE_VERSION#v} --silent && echo true || echo false)" >> $GITHUB_ENV | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish to npm | |
uses: FuelLabs/changesets-action@main | |
with: | |
publish: pnpm changeset:publish ${{ env.RELEASE_VERSION }} ${{ github.ref_name }} | |
createGithubReleases: aggregate | |
githubReleaseName: ${{ env.RELEASE_VERSION }} | |
githubTagName: ${{ env.RELEASE_VERSION }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_TOKEN }} | |
- name: Prettify changelog | |
run: pnpm changeset:update-changelog | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_TAG: ${{ env.RELEASE_VERSION }} | |
PUBLISHED: "true" | |
REF_NAME: ${{ github.ref_name }} | |
LATEST_RELEASE: ${{ env.LATEST_RELEASE }} | |
RELEASE_VERSION_HIGHER_THAN_LATEST: ${{ env.RELEASE_VERSION_HIGHER_THAN_LATEST }} | |
# nightly docs API gets updated on every merge to master | |
# and is configured in the vercel dashboard | |
# stable docs API gets updated only when a new release is published | |
- name: Update Docs API (stable) | |
if: | | |
github.ref_name == 'master' && | |
env.RELEASE_VERSION_HIGHER_THAN_LATEST == 'true' | |
env: | |
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_TS_DOCS_API_PROJECT_ID }} | |
run: | | |
pnpm install --global vercel@latest | |
vercel --prod --token=${{ secrets.VERCEL_TOKEN }} | |
- name: Update docs | |
if: github.ref_name == 'master' | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: update-nightly.yml | |
ref: master | |
repo: FuelLabs/docs-hub | |
token: ${{ steps.docs-token.outputs.token }} | |
- name: Create PR to apply latest release to master | |
if: | | |
startsWith(github.ref_name, 'release/') && | |
env.RELEASE_VERSION_HIGHER_THAN_LATEST == 'true' | |
run: | | |
PR_TITLE_TEXT='apply `latest` release to `master`' | |
if [ ${RELEASE_VERSION#v} = "$(semver "$LATEST_VERSION" --increment minor)" ]; then | |
PR_TITLE="build!: $PR_TITLE_TEXT" | |
else | |
PR_TITLE="build: $PR_TITLE_TEXT" | |
fi | |
PR_BODY='Automatically created when `latest` published release is newer than `master` due to publishing done via `release/*` branches.' | |
gh pr create -B master -H $GITHUB_REF_NAME --title "$PR_TITLE" --body "$PR_BODY" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_VERSION: ${{ env.RELEASE_VERSION }} | |
LATEST_VERSION: ${{ env.LATEST_VERSION }} | |
- name: Delete the release branch | |
# We check env.RELEASE_VERSION_HIGHER_THAN_LATEST == 'false' | |
# because we don't want to delete the branch that is used in the "Create PR to apply latest release to master" step above | |
if: | | |
startsWith(github.ref_name, 'release/') && | |
env.RELEASE_VERSION_HIGHER_THAN_LATEST == 'false' | |
run: git push origin --delete ${{ github.ref_name }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Notify migrations and disclosures of the new release (breaking changes) | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: migrations.yml | |
ref: master | |
repo: FuelLabs/migrations-and-disclosures | |
token: ${{ steps.docs-token.outputs.token }} |