Skip to content

Step 0, Start

Step 0, Start #1

Workflow file for this run

name: Step 0, Start
# This step triggers after the learner creates a new repository from the template
# This step sets STEP to 1
# This step closes <details id=0> and opens <details id=1>
# When creating a repository from a template, there is variability in the
# order and timing of events that fire and when workflow triggers are registered.
# Given that, these triggers are purposely broad to ensure this workflow is always triggered.
# The conditions within the on_start job are to ensure it is only fully executed once.
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
create:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
issues: write
jobs:
get_current_step:
name: Check current step number
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- id: get_step
run: echo "::set-output name=current_step::$(cat ./.github/script/STEP)"
outputs:
current_step: ${{ steps.get_step.outputs.current_step }}
on_start:
name: On start
needs: get_current_step
# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '0' (see update-step.sh)
# 3. This is the first workflow run on the repository
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ !github.event.repository.is_template }}
# We'll run Ubuntu for performance instead of Mac or Windows
runs-on: ubuntu-latest
steps:
# We'll need to check out the repository so that we can edit the README
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0 # Let's get all the branches
# This is required to establish related issues
# after being created from the template repository
- name: Prepare issues
run: |
echo "Make sure we are on step 0"
if [ "$(cat .github/script/STEP)" != 0 ]
then
echo "Current step is not 0"
exit 0
fi
echo "Create issue #1 from file"
gh issue create --title "Welcome" -F .github/files/issue01.md
echo "Create issue #2 from file"
gh issue create --title "Fix the sidebar" -F .github/files/issue02.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# This is required to create a relevant history for docs/_sidebar.md
# after being created from the template repository
- name: Prepare files history
run: |
echo "Make sure we are on step 0"
if [ "$(cat .github/script/STEP)" != 0 ]
then
echo "Current step is not 0"
exit 0
fi
git config user.name github-actions
git config user.email github-actions@github.com
git checkout main
echo "Update _sidebar.md for the 1st time"
cp -f .github/files/_sidebar01.md docs/_sidebar.md
git add docs/_sidebar.md
git commit -m "updated _sidebar.md"
git push
echo "update _sidebar.md for the 2nd time"
cp -f .github/files/_sidebar02.md docs/_sidebar.md
git add docs/_sidebar.md
git commit -m "add sidebar to documentation"
git push
echo "preserve the commit shaw"
git log --all --oneline | grep "add sidebar to documentation" | cut -c 1-7 >> .github/files/SIDEBARCOMMIT
git add .github/files/SIDEBARCOMMIT
git commit -m "created SIDEBARCOMMIT"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Update README to close <details id=0>
# and open <details id=1>
# and set STEP to '1'
- name: Update to step 1
uses: skills/action-update-step@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
from_step: 0
to_step: 1