Merge pull request #616 from backstage/renovate/knip-5.x-lockfile #516
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: Main Master Build | |
on: | |
push: | |
branches: [master] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
CI: true | |
NODE_OPTIONS: --max-old-space-size=4096 | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
# Beginning of yarn setup | |
- name: use node.js 20.x | |
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4 | |
with: | |
node-version: 20.x | |
registry-url: https://registry.npmjs.org/ # Needed for auth | |
- name: cache all node_modules | |
id: cache-modules | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} | |
- name: find location of global yarn cache | |
id: yarn-cache | |
if: steps.cache-modules.outputs.cache-hit != 'true' | |
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
- name: cache global yarn cache | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
if: steps.cache-modules.outputs.cache-hit != 'true' | |
with: | |
path: ${{ steps.yarn-cache.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: yarn install | |
run: yarn install --immutable | |
# End of yarn setup | |
- name: lint | |
run: yarn backstage-cli repo lint | |
- name: type checking and declarations | |
run: yarn tsc:full | |
- name: build | |
run: yarn build:all | |
- name: Login to Heroku Container registry | |
env: | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
run: heroku container:login | |
- name: Build and push | |
env: | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
DOCKER_BUILDKIT: 1 | |
run: heroku container:push -a ${{ secrets.HEROKU_APP_NAME }} web | |
- name: Release | |
env: | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
run: heroku container:release -a ${{ secrets.HEROKU_APP_NAME }} web | |
# Post notification to Discord Announcements channel | |
- name: 'Check if last commit is a release' | |
id: check_if_release | |
run: node scripts/check-if-release.js ${{ github.sha }} | |
- name: Discord notification | |
uses: Ilshidur/action-discord@0c4b27844ba47cb1c7bee539c8eead5284ce9fa9 # 0.3.2 | |
if: steps.check_if_release.outputs.is_release == 'true' | |
env: | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }} | |
CURRENT_VERSION: ${{ steps.check_if_release.outputs.current_version }} | |
with: | |
args: 'The Backstage Demo site has been upgraded to release {{CURRENT_VERSION}} go check it out: https://demo.backstage.io' |