Skip to content

Commit

Permalink
Welcome to Introduction to GitHub
Browse files Browse the repository at this point in the history
  • Loading branch information
heiskr committed Jan 10, 2022
0 parents commit c1e5033
Show file tree
Hide file tree
Showing 10 changed files with 908 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/script/STEP
@@ -0,0 +1 @@
0
40 changes: 40 additions & 0 deletions .github/script/update-for-step.sh
@@ -0,0 +1,40 @@
#!/usr/bin/env bash

echo "Check that we are on FROM_STEP"
if [ "$(cat .github/script/STEP)" != $FROM_STEP ]
then
echo "Current step is not $FROM_STEP"
exit 0
fi

echo "Make sure we are on the main branch"
git checkout main

echo "Remove 'open' from any <details> tags"
sed -r 's/<details id=([0-9]+) open>/<details id=\1>/g' README.md > tmp
mv tmp README.md

echo "Add 'open' to step TO_STEP"
sed -r "s/<details id=$TO_STEP>/<details id=$TO_STEP open>/g" README.md > tmp
mv tmp README.md

echo "Update the STEP file to TO_STEP"
echo "$TO_STEP" > .github/script/STEP

This comment was marked as spam.

Copy link
@Jammes00

Jammes00 Jan 15, 2023

.github/script/STEP


echo "Commit the files, and push to main"
git config user.name github-actions
git config user.email github-actions@github.com
git add README.md
git add .github/script/STEP
git commit -m "Update to $TO_STEP in STEP and README.md"
git push

echo "If BRANCH_NAME, update that branch as well"
if git show-ref --quiet refs/heads/$BRANCH_NAME
then
git checkout $BRANCH_NAME
git cherry-pick main
git push
else
echo "Branch $BRANCH_NAME does not exist"
fi
46 changes: 46 additions & 0 deletions .github/workflows/0-start.yml
@@ -0,0 +1,46 @@
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>

# This will run every time we create push a commit to `main`
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
workflow_dispatch:
push:
branches:
- main

jobs:
update_to_step_1:
name: On start

# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '0' (see lower `if`s)
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ github.repository_owner != 'githublearn' }}

# 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

# Update README to close <details id=0>
# and open <details id=1>
# and set STEP to '1'
- name: Update to step 1
run: ./.github/script/update-for-step.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
FROM_STEP: 0
TO_STEP: 1
BRANCH_NAME: my-first-branch
45 changes: 45 additions & 0 deletions .github/workflows/1-create-a-branch.yml
@@ -0,0 +1,45 @@
name: Step 1, Create a branch

# This step listens for the learner to create branch `my-first-branch`
# This step sets `STEP` to 2
# This step closes <details id=1> and opens <details id=2>

# This will run every time we create a branch or tag
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
workflow_dispatch:

This comment was marked as spam.

Copy link
@GaryOverholt

GaryOverholt Jan 30, 2023

hmm

create:

jobs:
update_to_step_2:
name: On create a branch

# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '1' (see lower `if`s)
# 3. The event is a branch
# 4. The branch name is `my-first-branch`
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ github.repository_owner != 'githublearn' && github.ref_type == 'branch' && github.ref_name == 'my-first-branch' }}

# 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

# Update README to close <details id=1>
# and open <details id=2>
# and set STEP to '2'
- name: Update to step 2
run: ./.github/script/update-for-step.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FROM_STEP: 1
TO_STEP: 2
BRANCH_NAME: my-first-branch
45 changes: 45 additions & 0 deletions .github/workflows/2-commit-a-file.yml
@@ -0,0 +1,45 @@
name: Step 2, Commit a file

# This step listens for the learner to commit a file to branch `my-first-branch`
# This step sets `STEP` to 3
# This step closes <details id=2> and opens <details id=3>

# This action will run every time there's a push to `my-first-branch`
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
workflow_dispatch:
push:
branches:
- my-first-branch

jobs:
update_to_step_3:
name: On commit a file

# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '2' (see lower `if`s)
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ github.repository_owner != 'githublearn' }}

# 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

# Update README to close <details id=2>
# and open <details id=3>
# and set STEP to '3'
- name: Update to step 3
run: ./.github/script/update-for-step.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FROM_STEP: 2
TO_STEP: 3
BRANCH_NAME: my-first-branch
48 changes: 48 additions & 0 deletions .github/workflows/3-open-a-pull-request.yml
@@ -0,0 +1,48 @@
name: Step 3, Open a pull request

# This step listens for the learner to open a pull request with branch `my-first-branch`
# This step sets `STEP` to 4
# This step closes <details id=3> and opens <details id=4>

# This will run every time we create a branch or tag
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
workflow_dispatch:
pull_request:
types:
- opened
- reopened

jobs:
update_to_step_4:
name: On open a pull request

# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '3' (see lower `if`s)
# 3. The head branch name is `my-first-branch`
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ github.repository_owner != 'githublearn' && github.head_ref == 'my-first-branch' }}

# 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
ref: my-first-branch # Important, as normally `pull_request` event won't grab other branches

# Update README to close <details id=3>
# and open <details id=4>
# and set STEP to '4'
- name: Update to step 4
run: ./.github/script/update-for-step.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FROM_STEP: 3
TO_STEP: 4
BRANCH_NAME: my-first-branch
45 changes: 45 additions & 0 deletions .github/workflows/4-merge-your-pull-request.yml
@@ -0,0 +1,45 @@
name: Step 4, Merge your pull request

# This step listens for the learner to merge a pull request with branch `my-first-branch`
# This step sets `STEP` to x
# This step closes <details id=4> and opens <details id=x>

# This will run every time we create push a commit to `main`
# Reference https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
on:
workflow_dispatch:
push:
branches:
- main

jobs:
update_to_step_x:
name: On merge your pull request

# We will only run this action when:
# 1. This repository isn't the template repository
# 2. The STEP is currently '4' (see lower `if`s)
# Reference https://docs.github.com/en/actions/learn-github-actions/contexts
# Reference https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ github.repository_owner != 'githublearn' }}

# 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

# Update README to close <details id=4>
# and open <details id=X>
# and set STEP to X
- name: Update to step X
run: ./.github/script/update-for-step.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FROM_STEP: 4
TO_STEP: X
BRANCH_NAME: my-first-branch
37 changes: 37 additions & 0 deletions .gitignore
@@ -0,0 +1,37 @@
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

1 comment on commit c1e5033

@kpakajoseph
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

excellent and well comprehended

Please sign in to comment.