Skip to content

Commit

Permalink
feat(stage-build): deploy next with main merged (#10930)
Browse files Browse the repository at this point in the history
* feat(stage-build): deploy next with main merged

* refactor(stage-build): move merge step up

* refactor(stage-build): introduce REF env var
  • Loading branch information
caugner committed Apr 16, 2024
1 parent beb13fa commit 8216930
Showing 1 changed file with 33 additions and 12 deletions.
45 changes: 33 additions & 12 deletions .github/workflows/stage-build.yml
Expand Up @@ -13,6 +13,7 @@ env:
DEFAULT_DEPLOYMENT_PREFIX: "main"
DEFAULT_NOTES: ""
DEFAULT_LOG_EACH_SUCCESSFUL_UPLOAD: "false"
DEFAULT_REF: next

on:
schedule:
Expand All @@ -21,6 +22,10 @@ on:

workflow_dispatch:
inputs:
ref:
description: "Branch to deploy (default: next)"
required: false

notes:
description: "Notes"
required: false
Expand Down Expand Up @@ -68,7 +73,35 @@ jobs:
if: github.repository == 'mdn/yari'

steps:
# Our usecase is a bit complicated. When the cron schedule runs this workflow,
# we rely on the env vars defined at the top of the file. But if it's a manual
# trigger we rely on the inputs and only the inputs. That way, the user can
# opt to type in 'false'.
# It's not possible to express this with GitHub Workflow syntax, so we
# have a dedicate set that conveniently sets these as env vars which we
# can refer to later in `if: ....` lines or in bash with the `run: ...` blocks.
- name: Merge dispatch inputs with default env vars
run: |
echo "DEPLOYER_BUCKET_PREFIX=${{ github.event.inputs.deployment_prefix || env.DEFAULT_DEPLOYMENT_PREFIX }}" >> $GITHUB_ENV
echo "DEPLOYER_LOG_EACH_SUCCESSFUL_UPLOAD=${{ github.event.inputs.log_each_successful_upload || env.DEFAULT_LOG_EACH_SUCCESSFUL_UPLOAD }}" >> $GITHUB_ENV
echo "REF=${{ github.event.inputs.ref || env.DEFAULT_REF }}" >> $GITHUB_ENV
- uses: actions/checkout@v4
with:
ref: ${{ env.REF }}
fetch-depth: 0

- name: Merge main
if: ${{ env.REF != 'main' }}
run: |
git config --global user.email "108879845+mdn-bot@users.noreply.github.com"
git config --global user.name "mdn-bot"
git status
git pull
git checkout main
git status
git checkout -
git merge main --no-edit
- uses: actions/checkout@v4
if: ${{ ! vars.SKIP_BUILD || ! vars.SKIP_FUNCTION }}
Expand All @@ -95,18 +128,6 @@ jobs:
repository: mdn/curriculum
path: mdn/curriculum

# Our usecase is a bit complicated. When the cron schedule runs this workflow,
# we rely on the env vars defined at the top of the file. But if it's a manual
# trigger we rely on the inputs and only the inputs. That way, the user can
# opt to type in 'false'.
# It's not possible to express this with GitHub Workflow syntax, so we
# have a dedicate set that conveniently sets these as env vars which we
# can refer to later in `if: ....` lines or in bash with the `run: ...` blocks.
- name: Merge dispatch inputs with default env vars
run: |
echo "DEPLOYER_BUCKET_PREFIX=${{ github.event.inputs.deployment_prefix || env.DEFAULT_DEPLOYMENT_PREFIX }}" >> $GITHUB_ENV
echo "DEPLOYER_LOG_EACH_SUCCESSFUL_UPLOAD=${{ github.event.inputs.log_each_successful_upload || env.DEFAULT_LOG_EACH_SUCCESSFUL_UPLOAD }}" >> $GITHUB_ENV
- uses: actions/checkout@v4
if: ${{ ! vars.SKIP_BUILD || ! vars.SKIP_FUNCTION }}
with:
Expand Down

0 comments on commit 8216930

Please sign in to comment.