-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
231 additions
and
20 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
name: "Changesets PR" | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- release/* | ||
|
||
concurrency: ${{ github.workflow }}-${{ github.ref }} | ||
|
||
jobs: | ||
changesets-pr: | ||
runs-on: ubuntu-latest | ||
permissions: write-all | ||
# First check ensures that the workflow runs only if the commit is NOT the changesets PR commit. | ||
# 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: | | ||
startsWith(github.event.head_commit.message,'ci(release):') != true && | ||
github.event.before != '0000000000000000000000000000000000000000' | ||
steps: | ||
- 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 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Set branch name and changeset PR title | ||
run: | | ||
echo "CHANGESET_PR_TITLE=$(echo "ci(release): \`${{ env.RELEASE_VERSION }}\` @ \`${{ github.ref_name }}\`")" >> $GITHUB_ENV | ||
- name: Build | ||
run: pnpm build | ||
|
||
- name: Create Release Pull Request | ||
id: changesets | ||
uses: FuelLabs/changesets-action@main | ||
with: | ||
publish: pnpm changeset:publish ${{ env.RELEASE_VERSION }} ${{ github.ref_name }} | ||
version: pnpm changeset:version-with-docs | ||
commit: "ci(release): versioning packages and changesets" | ||
title: ${{ env.CHANGESET_PR_TITLE }} | ||
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 }} | ||
REF_NAME: ${{ github.ref_name }} | ||
PUBLISHED: "false" | ||
|
||
# # Commenting out as we require permissions to trigger across repos | ||
# - name: Update docs (nightly) | ||
# if: github.ref_name == 'master' && env.SHOULD_DEPLOY_DOCS == 'true' | ||
# uses: benc-uk/workflow-dispatch@v1 | ||
# with: | ||
# workflow: update-nightly.yml | ||
# ref: master | ||
# repo: FuelLabs/docs-hub | ||
# token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
# Upload assets to S3 | ||
- uses: unfor19/install-aws-cli-action@v1.0.7 | ||
if: github.ref_name == 'master' | ||
with: | ||
version: 2 | ||
verbose: false | ||
arch: amd64 | ||
rootdir: "" | ||
workdir: "" | ||
|
||
- name: Configure AWS credentials | ||
uses: aws-actions/configure-aws-credentials@v4 | ||
if: github.ref_name == 'master' | ||
with: | ||
role-to-assume: ${{ vars.AWS_ROLE_ARN }} | ||
aws-region: ${{ vars.AWS_S3_REGION }} | ||
|
||
- name: Upload assets to s3 | ||
if: github.ref_name == 'master' | ||
run: | | ||
aws s3 cp ./packages/account/src/assets/images/ s3://${{ vars.AWS_S3_BUCKET }}/providers/ --recursive |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
name: "Release" | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- release/* | ||
|
||
concurrency: ${{ github.workflow }}-${{ github.ref }} | ||
|
||
jobs: | ||
release: | ||
runs-on: ubuntu-latest | ||
environment: npm-deploy | ||
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: | | ||
startsWith(github.event.head_commit.message,'ci(release):') && | ||
github.event.before != '0000000000000000000000000000000000000000' | ||
steps: | ||
- 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 | ||
|
||
- name: Ensure NPM access | ||
run: npm whoami | ||
env: | ||
NODE_AUTH_TOKEN: ${{ secrets.NPM_DEPLOY_TOKEN }} | ||
|
||
# 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 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_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 }} | ||
version: pnpm changeset:version-with-docs | ||
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 }} | ||
|
||
- 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 if it's 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 }} | ||
|
||
# # Commenting out as we require permissions to trigger across repos | ||
# - name: Update docs (nightly) | ||
# if: github.ref_name == 'master' && env.RELEASE_VERSION_HIGHER_THAN_LATEST == 'true' | ||
# uses: benc-uk/workflow-dispatch@v1 | ||
# with: | ||
# workflow: update-nightly.yml | ||
# ref: master | ||
# repo: FuelLabs/docs-hub | ||
# token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
# # Commenting out as we require permissions to trigger across repos | ||
# - name: Notify migrations and disclosures of the new release (breaking changes) | ||
# run: | | ||
# curl -X POST \ | ||
# -H "Accept: application/vnd.github.v3+json" \ | ||
# -H "Authorization: token ${{ secrets.MIGRATIONS_RELEASE_TRIGGER_TOKEN }}" \ | ||
# https://api.github.com/repos/FuelLabs/migrations-and-disclosures/dispatches \ | ||
# -d '{"event_type":"update_versions"}' |
This file was deleted.
Oops, something went wrong.