Skip to content

[ci] back-fix release 2024-04 (#2264) #51

[ci] back-fix release 2024-04 (#2264)

[ci] back-fix release 2024-04 (#2264) #51

name: Back-fix changelog PR or Release
on:
push:
# Add calver branches - Do not add current calver branch
# Example: If we are currently on 2023-07, do not add 2023-07
branches:
- 2024-04
concurrency:
group: changeset-2024-04
cancel-in-progress: true
jobs:
changelog:
runs-on: ubuntu-latest
if: github.repository_owner == 'shopify'
name: Back-fix changelog PR or Release
# Uncomment "outputs" section if you need the "compile" job to work
outputs:
published: ${{ steps.changesets.outputs.published }}
latest: ${{ env.latest }}
steps:
# Uncomment "Flags" section if you need the "compile" job to work
- name: Flags
id: flags
run: |
echo "latest=${{ github.ref_name == '2024-04' }}" >> $GITHUB_ENV
- name: Checkout the code
uses: actions/checkout@v4
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
with:
fetch-depth: 0
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install the packages
run: npm ci --legacy-peer-deps
- name: Format release with Prettier
run: npm run format
- name: Build the dist code
run: npm run build
- name: Create Back-fix Release Pull Request or Publish (for back-fix release)
id: changesets
uses: changesets/action@v1
with:
version: npm run version
# Use this command to publish back-fix release onto specific major version npm tag
# publish: npm run changeset -- publish --tag ${{ github.ref_name }}
# Use this command to publish back-fix release onto latest npm tag if the next major release is not ready yet
publish: npm run changeset -- publish
commit: '[ci] back-fix release ${{ github.ref_name }}'
title: '[ci] back-fix release ${{ github.ref_name }}'
env:
GITHUB_TOKEN: ${{ secrets.SHOPIFY_GH_ACCESS_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# Uncomment the "compile" job so that we continue making latest releases on the back-fix branch
# before we switch to the next major version
compile:
needs: changelog
# Only compile templates if a release was published, and we're on the "latest" release branch
if: needs.changelog.outputs.published == 'true' && needs.changelog.outputs.latest == 'true'
runs-on: ubuntu-latest
name: Compile the typescript templates and push them to main
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Install the packages
run: npm install --frozen-lockfile --ignore-engines
- name: Build the dist code
run: npm run build
- name: Compile skeleton
run: |
node scripts/compile-template-for-dist.mjs skeleton
(cd templates/skeleton-js && npm i --package-lock-only --workspaces false)
(cd templates/skeleton-ts && npm i --package-lock-only --workspaces false)
- name: Update templates in the dist branch
run: |
git add .
git status
git config user.email "[email protected]"
git config user.name "Hydrogen Bot"
git show-ref
git commit -m "Update templates for dist"
git push origin HEAD:dist --force