Miguel Palhas / @naps62

PS: We're hiring!!

git push
<do stuff>

Not everything is a commit

@ Utrust

  • Multiple live environments:
     
    • Development
       
    • Staging/QA
       
    • Sandbox/Production

Deployed ASAP

~weekly

~weekly'ish


git checkout -b release-2020-01-14
git push
deploy

Wait... So only
developers can deploy??

workflows:
  deploy:
    jobs:
      - approval_step
          type: approval
         
      - deploy:
         requires:
           - approval_step
name: Github Action Example

on:
  push:
    branches:
      - master

jobs:
  ...

Triggers

name: Github Action Example

on:
  push:
  
  pull_request:
    types: [opened, synchronize]
    
  issue_comment:
    types: [created]

jobs:
  ...

Triggers

name: Github Action Example

jobs:
  test:
    runs-on: ubuntu-latest
    container: node:9.11.2
    
    steps:
      - name: Hello
        run: echo "Hello World"

Commands

name: Deploy

on: [deployment]

jobs:
  test:
    steps:
      - name: Checkout
        run: actions/checkout@v1
        with:
          ref: ${{ github.event.deployment.ref }}

Reusable Actions



    steps:
      - name: Trigger Deploy
        uses: actions/github-script@0.3.0
        with:
          script: |
            console.log("wow, javascript!")
            await github.repos.createDeployment({
              # ...
            })

github-script

1. Consumes the Github API,
not just `git push`
 
2. More intuitive flows for our team

 

3. Powerful reusability
(JS / Docker actions)

Watch:
ChatOps at GitHub - Jesse Newland
RubyFuza 2013

1. Preserves history

 

2. Live documentation
 

3. Full transparency

Miguel Palhas / @naps62

Automating your Way to Confidence

By Miguel Palhas

Automating your Way to Confidence

  • 289