GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)

Phil Wilkins
Phil WilkinsCloud Developer Evangelist (Author & Oracle Ace Director Alumni) at Oracle
November 2021
IMPLEMENTING GITHUB
ACTION HANDLERS ON OCI
Phil Wilkins
Tech Evangelist & Ace Director
Phil.Wilkins@capgemini.com
uk.linkedin.com/in/philWilkins
@MP3Monster
blog.mp3monster.org / phil-wilkins.uk
Oracle-integration.cloud /
Presentation Title | Author | Date 2
© Capgemini . 2021. All rights reserved |
THE ABOUT ME …
https://blog.mp3monster.org/
publication-contributions/
Me in 5:
• Husband, Father, Blogger & Author
• Technical Architect, Tech Evangelist
• Work for Capgemini UK as part of a multi
award winning team
• Work with primarily open source + Oracle
middleware
• Know more – mp3monster.org
https://bit.ly/FluentdBook
https://bit.ly/ImplementingAPI
https://oracle-integration.cloud
Presentation Title | Author | Date 3
© Capgemini . 2021. All rights reserved |
CAPGEMINI IS ONE OF THE WORLD'S LARGEST CONSULTING, TECHNOLOGY, AND
OUTSOURCING FIRMS & A GLOBAL “FULL SERVICE” BUSINESS TRANSFORMATION PROVIDER
Group Workforce: 200,000+ Globally
Asia Pacific
Latin America
Canada
United States
Mexico
Brazil
Argentina
Europe
Morocco
Australia
People’s Republic of China
India
Chile
Guatemala
Russia
Singapore
Hong Kong
North
America
UK & Ireland
Nordics
Benelux
“It is the quality of our people, and their
capacity to deliver fitting solutions, with you
and for you, that drive real business results.”
Across 40+ countries, 100 nationalities
5Businesses
Revenue
12,8
Billion EUR (2017)
Central Europe
Morocco
Net Profit
€1,18B
 Targeting Value
 Mitigating Risk
 Optimising
Capabilities
 Aligning the
Organisation
Elements to
successful
collaboration
Application Services
Infrastructure
Services
Business Process
Outsourcing
Consulting
(Capgemini Consulting)
Local Professional
4
INTRODUCING
GIT HUB PIPELINES
Presentation Title | Author | Date 5
© Capgemini . 2021. All rights reserved |
Flow of
GitHub Actions
Like Jenkins but different …
• Jenkins has slaves
• Jenkins slave most likely run the entire
pipeline
• Here more likely to break pipeline up
• Ability to make highly parallelized
Presentation Title | Author | Date 6
© Capgemini . 2021. All rights reserved |
Workers for
Github Actions
1
GitHub can provide runners (with a cost)
• Runs on Azure
• Some limitations in runner options
• More secure as GitHub  Azure hidden
from the internet
Presentation Title | Author | Date 7
© Capgemini . 2021. All rights reserved |
On-Prem
Workers for
Github Actions
2
Can deploy to different runners in different
locations.
• Possibilities for Bandwidth burst for
example
• GitHub Enterprise enables on-prem repos
Presentation Title | Author | Date 8
© Capgemini . 2021. All rights reserved |
Workers for
Github Actions
3
Runner setups are provided for major cloud
providers, but other clouds possible
Presentation Title | Author | Date 9
© Capgemini . 2021. All rights reserved |
Workers for
Github Actions
4
• Oracle provides a prebuilt runner
• Lots of resources on using GitHub Actions
through Oracle Developer community
channels
Presentation Title | Author | Date 10
© Capgemini . 2021. All rights reserved |
?
Network security
Workers for Github Actions
This is HTTP traffic over NET
going to the worker node –
need to consider security
BAU for the
developer.
Managing traffic
into GitHub will
need good control –
avoid unwanted
content as it can
cascade to our
workers.
New job work flow,
retuning results
HTTPS Flow
Key
How it changes a pipeline
PIPELINE IN GITHUB
ACTIONS
Presentation Title | Author | Date 12
© Capgemini . 2021. All rights reserved |
Java
Pipeline
Promote to
Next stage
Fail build
Code
prepository
Branching
/
Release
strategy
e.g.
GitFlow
Static
security
scan
e.g.
password/token
search
Dependency Mgmt & 3rd
Party Sourcing
Ensuring dependencies ok,
source from accepted source
Checked for malicious
content
Compile
Create
JAR
Sign
artefact
Static
Code
Analysis
Coding
errors,
coding
style
Unit
Testing
Unit
test,
capture
code
coverage
API
Testing
Test
as
an
API
provider
and
/or
as
a
consumer
User
Experience
&
Performance
Test
for
user
workflow
&
performance
Dynamic
Security
Testing
Test
code
for
classic
errors
Package
for
containers
Check
packaging
for
quality
&
security
Sign
artefacts
Add
to
trusted
registry
Store
in
registry
to
use
at
next
level
Generate
documentation
Build
/
update
documentation
directly
from
the
source
coide
In the ideal world a Java development pipeline might look like …
Presentation Title | Author | Date 13
© Capgemini . 2021. All rights reserved |
We might want multiple pipelines for different technologies…
We could get GitHub to trigger a monolithic
pipeline – but the communicating back
outcomes – not so easy
Our pipelines will be staged…
Presentation Title | Author | Date 14
© Capgemini . 2021. All rights reserved |
Promote to
Next stage
Fail build
Granular Pipeline for GitHub?
We could make the tasks very granular –
each step of the pipeline …
Best is probably a middle ground…
Presentation Title | Author | Date 15
© Capgemini . 2021. All rights reserved |
Promote to
Next stage
Fail build
Granular Pipeline for GitHub?
We could make the tasks very granular –
each step of the pipeline …
Best is probably a middle ground…
CONFIGURING
ACTIONS
Presentation Title | Author | Date 17
© Capgemini . 2021. All rights reserved |
1. Get a GitHub runner resources …
1. registration token from the repo
2. Setup SSH key to be used by both ends – keygen or website like https://8gwifi.org/sshfunctions.jsp#
2. Create a configuration for our worker node(s)
• Options
– Terraform + Ansible to create environment
– Preconfigured cloud stack from Oracle (Arm Runner )-
https://cloud.oracle.com/resourcemanager/stacks/create?zipUrl=https://github.com/oracle-quickstart/oci-github-actions-
runner/releases/download/orm-deploy/orm.zip
3. Ensure all the necessary additional components are installed on the worker node
– Benefit of the Terraform + Ansible route is that will be incorporated into the process
– Using steps in a Action
4. Configure the GitHub Action
5. Trigger
6. Review runner response information
To get our pipeline working …
IMPLEMENTING A GITHUB ACTION …
Presentation Title | Author | Date 18
© Capgemini . 2021. All rights reserved |
Step
1.1
Presentation Title | Author | Date 19
© Capgemini . 2021. All rights reserved |
Step
1.2
Presentation Title | Author | Date 20
© Capgemini . 2021. All rights reserved |
Step
2.1
Follow the link
to jump into the
Stack tool with
the correct
image
Presentation Title | Author | Date 21
© Capgemini . 2021. All rights reserved |
Step
2.2
Presentation Title | Author | Date 22
© Capgemini . 2021. All rights reserved |
Step
2.3
Presentation Title | Author | Date 23
© Capgemini . 2021. All rights reserved |
Step
2.4
Presentation Title | Author | Date 24
© Capgemini . 2021. All rights reserved |
Step
2.5
Presentation Title | Author | Date 25
© Capgemini . 2021. All rights reserved |
Step
2.6
Presentation Title | Author | Date 26
© Capgemini . 2021. All rights reserved |
Step
2.7
Presentation Title | Author | Date 27
© Capgemini . 2021. All rights reserved |
Step
2.8
Presentation Title | Author | Date 28
© Capgemini . 2021. All rights reserved |
CONFIGURING
ACTIONS
Presentation Title | Author | Date 29
© Capgemini . 2021. All rights reserved |
Repo Events Scheduled Manual Triggers
- Event on a repository
- push or pull
- Fork
- Comments
- Deployment events
- Actions can be linked to head or
branch(es)
- Schedule can be defined using
the POSIX cron syntax
- https://crontab.guru/ - website
to formulate cron schedules
- Last editor of the schedule will
be notified
- Uses the API event
workflow_dispatch – needs to
be added to triggers
OR
- To make easy consider a gist to
prepopulate values
- Execute using a tool e.g. SoapUI
GITHUB FLOW TRIGGERS
on:
push:
branches:
- main
pull_request:
branches:
- main
on:
schedule:
# * is a special character in YAML so
you have to quote this string
- cron: '30 5,17 * * *'
on:
workflow_dispatch :
branches [main]
Step
4.0
Presentation Title | Author | Date 30
© Capgemini . 2021. All rights reserved |
PREBUILT TEMPLATES FOR COMMON NEEDS
Step
4.0
Presentation Title | Author | Date 31
© Capgemini . 2021. All rights reserved |
Step
4.1
Presentation Title | Author | Date 32
© Capgemini . 2021. All rights reserved |
# This workflow will install Python dependencies, run tests and lint
with a variety of Python versions
name: Python package
on:
push:
branches: [ main ]
workflow_dispatch:
branches: [ main ]
# pull_request:
# branches: [ main ]
jobs:
build:
runs-on: oci
strategy:
fail-fast: false
matrix:
# python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.6]
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
python -m flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
python -m pytest
GITHUB ACTION
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Condition on which we
will trigger the job and
which parts of the
code base
We can set up the build to verify multiple
versions of Python (does require all to be
set up on the runner. The default runner
used only has 1 version of Python
Stops on the 1st error if set
Step
4.1
Make sure the necessary
tools are in place
Provide a name for the next
actions. Outputs split up using
named steps
We can link actions
to operations on
specific branches
Command-line instruction
for the Python lint tool
(flake8)
Command-line instruction
for flake8 to perform
complexity checks on the
code
Execute the pytest
configuration in the repo
Notation is YAML
Execute local shell
scripts
Presentation Title | Author | Date 33
© Capgemini . 2021. All rights reserved |
Step
6.1
Denotes successful
execution i.e. no steps
have been failed
Links to key operations
such as run, and displays
the associated name
Content is a capture of
stdout
Console output from
pytest
When things
fail in the CI
process
Presentation Title | Author | Date 34
© Capgemini . 2021. All rights reserved |
LOOKING
BEYOND THE
BASICS
Presentation Title | Author | Date 35
© Capgemini . 2021. All rights reserved |
GitHub YAML also allows:
• Retrieve files as artefacts to allow data sharing between jobs in the
same workflow
• Define dependencies between each job in a workflow
• Define environment variables e.g. setting values for the app being
tested such as port numbers
• Store secrets and reference them using GitHub secrets feature e.g.
passing passwords etc
• Define services such as launching containers e.g. hosting a DB in a start
state then dropping it for the next run
• Develop reusable workflows – e.g. common workflow for a Java app and
reuse across multiple Java applications
Other features:
• Allows the use of Bash Automated Testing System (BATS) and validation
of BATS version (https://github.com/bats-core/bats-core)
• Labelling to group runners to support certain Actions (e.g. link to the
necessary hardware, or deployment location)
• Extended security controls for Enterprise repositories
OTHER MORE ADVANCED FEATURES
Presentation Title | Author | Date 36
© Capgemini . 2021. All rights reserved |
1. How do we provide a good developer experience – in
terms of seeing test coverage and other analysis in a
consumable visual manner?
2. What if someone commits malicious code into my
repository?
3. Network security – access into our network from
GitHub?
4. One monolithic development pipeline or more discrete
jobs and orchestration in GitHub?
5. Runner clean-up – add IaC to teardown and replace
runners?
6. Use GitLab CI/CD or GitHub Actions – similar, but not
the same
THINGS TO CONSIDER IN BUILDING A GITHUB ACTIONS PIPELINE
Presentation Title | Author | Date 37
© Capgemini . 2021. All rights reserved |
The following are useful resources for working more with GitHub Actions
• Git Hub Actions documentation - https://docs.github.com/en/actions/learn-github-actions
• GitHub repository - https://github.com/actions
• Blog - https://blog.mp3monster.org/2021/07/05/oracle-cloud-github-actions/
• Oracle Originated posts:
• https://blog.kube-mesh.io/ci-cd-on-oracle-kubernetes-engine-using-github-action/
• https://blogs.oracle.com/cloud-infrastructure/post/announcing-github-actions-arm-runners-for-the-arm-
compute-platform-on-oracle-cloud-infrastructure
• https://blogs.oracle.com/developers/post/adventures-in-cicd-1-intro-getting-started-with-github-actions
• Docker with GitHub Actions https://docs.docker.com/ci-cd/github-actions/
• Terraform with GitHub Actions https://learn.hashicorp.com/tutorials/terraform/github-actions
USEFUL RESOURCES
QUESTIONS?
This presentation contains information that may be privileged or confidential and
is the property of the Capgemini Group.
Copyright © 2021 Capgemini. All rights reserved.
Capgemini is a global leader in partnering with companies to transform and manage their
business by harnessing the power of technology. The Group is guided everyday by its
purpose of unleashing human energy through technology for an inclusive and sustainable
future. It is a responsible and diverse organization of 270,000 team members in nearly 50
countries. With its strong 50 year heritage and deep industry expertise, Capgemini is
trusted by its clients to address the entire breadth of their business needs, from strategy
and design to operations, fuelled by the fast evolving and innovative world of cloud, data,
AI, connectivity, software, digital engineering and platforms. The Group reported in 2020
global revenues of €16 billion.
About Capgemini
Get the Future You Want | www.capgemini.com
1 of 39

Recommended

Oracle ACFS High Availability NFS Services (HANFS) Part-I by
Oracle ACFS High Availability NFS Services (HANFS) Part-IOracle ACFS High Availability NFS Services (HANFS) Part-I
Oracle ACFS High Availability NFS Services (HANFS) Part-IAnju Garg
3.6K views8 slides
Oracle ACFS High Availability NFS Services (HANFS) by
Oracle ACFS High Availability NFS Services (HANFS)Oracle ACFS High Availability NFS Services (HANFS)
Oracle ACFS High Availability NFS Services (HANFS)Anju Garg
21.8K views99 slides
Oracle Cloud With Azure DevOps Pipelines by
Oracle Cloud With Azure DevOps PipelinesOracle Cloud With Azure DevOps Pipelines
Oracle Cloud With Azure DevOps PipelinesJohan Louwers
1.8K views26 slides
Automate the operation of your Oracle Cloud infrastructure v2.0 by
Automate the operation of your Oracle Cloud infrastructure v2.0Automate the operation of your Oracle Cloud infrastructure v2.0
Automate the operation of your Oracle Cloud infrastructure v2.0Nelson Calero
899 views60 slides
Enterprise manager 13c by
Enterprise manager 13cEnterprise manager 13c
Enterprise manager 13cMarketingArrowECS_CZ
2.9K views113 slides
Why oracle data guard new features in oracle 18c, 19c by
Why oracle data guard new features in oracle 18c, 19cWhy oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cSatishbabu Gunukula
1.7K views20 slides

More Related Content

What's hot

Oracle Cloud Infrastructure:2022年8月度サービス・アップデート by
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートオラクルエンジニア通信
259 views107 slides
Smart monitoring how does oracle rac manage resource, state ukoug19 by
Smart monitoring how does oracle rac manage resource, state ukoug19Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19Anil Nair
1.7K views55 slides
What's new in Oracle 19c & 18c Recovery Manager (RMAN) by
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)Satishbabu Gunukula
827 views22 slides
Data Guard Architecture & Setup by
Data Guard Architecture & SetupData Guard Architecture & Setup
Data Guard Architecture & SetupSatishbabu Gunukula
31.4K views61 slides
Scaling paypal workloads with oracle rac ss by
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssAnil Nair
1.1K views38 slides
En rhel-deploy-oracle-rac-database-12c-rhel-7 by
En rhel-deploy-oracle-rac-database-12c-rhel-7En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7Rotua Damanik
1.3K views117 slides

What's hot(20)

Smart monitoring how does oracle rac manage resource, state ukoug19 by Anil Nair
Smart monitoring how does oracle rac manage resource, state ukoug19Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19
Anil Nair1.7K views
What's new in Oracle 19c & 18c Recovery Manager (RMAN) by Satishbabu Gunukula
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
Scaling paypal workloads with oracle rac ss by Anil Nair
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ss
Anil Nair1.1K views
En rhel-deploy-oracle-rac-database-12c-rhel-7 by Rotua Damanik
En rhel-deploy-oracle-rac-database-12c-rhel-7En rhel-deploy-oracle-rac-database-12c-rhel-7
En rhel-deploy-oracle-rac-database-12c-rhel-7
Rotua Damanik1.3K views
Container security by Anthony Chow
Container securityContainer security
Container security
Anthony Chow1.2K views
Understanding oracle rac internals part 1 - slides by Mohamed Farouk
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slides
Mohamed Farouk4.3K views
Operating PostgreSQL at Scale with Kubernetes by Jonathan Katz
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
Jonathan Katz2.7K views
Backup and recovery in oracle by sadegh salehi
Backup and recovery in oracleBackup and recovery in oracle
Backup and recovery in oracle
sadegh salehi4.1K views
New Features for Multitenant in Oracle Database 21c by Markus Flechtner
New Features for Multitenant in Oracle Database 21cNew Features for Multitenant in Oracle Database 21c
New Features for Multitenant in Oracle Database 21c
Markus Flechtner91 views
Virtualization Architecture & KVM by Pradeep Kumar
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
Pradeep Kumar33.4K views
Oracle Enterprise Manager Cloud Control 13c for DBAs by Gokhan Atil
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
Gokhan Atil33.1K views
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング by オラクルエンジニア通信
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
Oracle Active Data Guard: Best Practices and New Features Deep Dive by Glen Hawkins
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Glen Hawkins520 views
Understanding Oracle RAC 11g Release 2 Internals by Markus Michalewicz
Understanding Oracle RAC 11g Release 2 InternalsUnderstanding Oracle RAC 11g Release 2 Internals
Understanding Oracle RAC 11g Release 2 Internals
Markus Michalewicz7.7K views
Oracle Database Migration to Oracle Cloud Infrastructure by SinanPetrusToma
Oracle Database Migration to Oracle Cloud InfrastructureOracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud Infrastructure
SinanPetrusToma1.2K views
Rman Presentation by Rick van Ek
Rman PresentationRman Presentation
Rman Presentation
Rick van Ek5.5K views
Cloning Oracle EBS R12: A Step by Step Procedure by Orazer Technologies
Cloning Oracle EBS R12: A Step by Step ProcedureCloning Oracle EBS R12: A Step by Step Procedure
Cloning Oracle EBS R12: A Step by Step Procedure

Similar to GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)

Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps by
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsWeaveworks
245 views37 slides
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps by
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsSonja Schweigert
62 views37 slides
CI/CD with Github Actions by
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github ActionsMd. Minhazul Haque
412 views20 slides
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808 by
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
219 views47 slides
Introduction to GitHub Actions – How to easily automate and integrate with Gi... by
Introduction to GitHub Actions – How to easily automate and integrate with Gi...Introduction to GitHub Actions – How to easily automate and integrate with Gi...
Introduction to GitHub Actions – How to easily automate and integrate with Gi...All Things Open
125 views51 slides
Set up a Development Environment in 5 Minutes by
Set up a Development Environment in 5 MinutesSet up a Development Environment in 5 Minutes
Set up a Development Environment in 5 MinutesAkamai Developers & Admins
227 views28 slides

Similar to GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)(20)

Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps by Weaveworks
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Weaveworks245 views
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps by Sonja Schweigert
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Sonja Schweigert62 views
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808 by Cisco DevNet
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Cisco DevNet219 views
Introduction to GitHub Actions – How to easily automate and integrate with Gi... by All Things Open
Introduction to GitHub Actions – How to easily automate and integrate with Gi...Introduction to GitHub Actions – How to easily automate and integrate with Gi...
Introduction to GitHub Actions – How to easily automate and integrate with Gi...
All Things Open125 views
Open up your platform with Open Source and GitHub by Scott Graham
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
Scott Graham1.3K views
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf by prune1
Quebec - 16 November 2022 - Canada CNCF Meetups.pdfQuebec - 16 November 2022 - Canada CNCF Meetups.pdf
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf
prune129 views
[Devopsdays2021] Roll Your Product with Kaizen Culture by Woohyeok Kim
[Devopsdays2021] Roll Your Product with Kaizen Culture[Devopsdays2021] Roll Your Product with Kaizen Culture
[Devopsdays2021] Roll Your Product with Kaizen Culture
Woohyeok Kim517 views
CI-CD Jenkins, GitHub Actions, Tekton by Araf Karsh Hamid
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
Araf Karsh Hamid1.2K views
Introduction to GitHub Actions - How to easily automate and integrate with Gi... by All Things Open
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
All Things Open109 views
Cloud native - CI/CD by Elad Hirsch
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
Elad Hirsch101 views
Flux is incubating + the road ahead by LibbySchulze
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
LibbySchulze290 views
Docker and Jenkins [as code] by Mark Waite
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]
Mark Waite486 views
Bring-your-ML-Project-into-Production-v2.pdf by Liang Yan
Bring-your-ML-Project-into-Production-v2.pdfBring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdf
Liang Yan31 views
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker by Gaurav Gahlot
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and DockerOSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
Gaurav Gahlot114 views
Gitlab ci e kubernetes, build test and deploy your projects like a pro by sparkfabrik
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
sparkfabrik3.2K views
Microservices development at scale by Vishal Banthia
Microservices development at scaleMicroservices development at scale
Microservices development at scale
Vishal Banthia521 views

More from Phil Wilkins

API Design – More than just a Payload Definition by
API Design – More than just a Payload DefinitionAPI Design – More than just a Payload Definition
API Design – More than just a Payload DefinitionPhil Wilkins
942 views39 slides
Is 12 Factor App Right About Logging by
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingPhil Wilkins
350 views30 slides
APIs, STOP Polling, lets go Streaming by
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingPhil Wilkins
60 views23 slides
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme... by
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Phil Wilkins
118 views24 slides
Oracle OCI APIs and SDK by
Oracle OCI APIs and SDKOracle OCI APIs and SDK
Oracle OCI APIs and SDKPhil Wilkins
218 views17 slides
Api more than payload (2021 Update) by
Api more than payload (2021 Update)Api more than payload (2021 Update)
Api more than payload (2021 Update)Phil Wilkins
67 views29 slides

More from Phil Wilkins(20)

API Design – More than just a Payload Definition by Phil Wilkins
API Design – More than just a Payload DefinitionAPI Design – More than just a Payload Definition
API Design – More than just a Payload Definition
Phil Wilkins942 views
Is 12 Factor App Right About Logging by Phil Wilkins
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About Logging
Phil Wilkins350 views
APIs, STOP Polling, lets go Streaming by Phil Wilkins
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go Streaming
Phil Wilkins60 views
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme... by Phil Wilkins
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Phil Wilkins118 views
Oracle OCI APIs and SDK by Phil Wilkins
Oracle OCI APIs and SDKOracle OCI APIs and SDK
Oracle OCI APIs and SDK
Phil Wilkins218 views
Api more than payload (2021 Update) by Phil Wilkins
Api more than payload (2021 Update)Api more than payload (2021 Update)
Api more than payload (2021 Update)
Phil Wilkins67 views
API more than payload by Phil Wilkins
API more than payloadAPI more than payload
API more than payload
Phil Wilkins1.3K views
How fluentd fits into the modern software landscape by Phil Wilkins
How fluentd fits into the modern software landscapeHow fluentd fits into the modern software landscape
How fluentd fits into the modern software landscape
Phil Wilkins983 views
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20 by Phil Wilkins
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
Phil Wilkins1.1K views
FluentD for end to end monitoring by Phil Wilkins
FluentD for end to end monitoringFluentD for end to end monitoring
FluentD for end to end monitoring
Phil Wilkins1.1K views
Meetups - The Oracle Ace Way by Phil Wilkins
Meetups - The Oracle Ace WayMeetups - The Oracle Ace Way
Meetups - The Oracle Ace Way
Phil Wilkins879 views
Apiary - A Developers Perspective by Phil Wilkins
Apiary - A Developers PerspectiveApiary - A Developers Perspective
Apiary - A Developers Perspective
Phil Wilkins1.1K views
Secrets of Custom API Policies on the Oracle API Platform by Phil Wilkins
Secrets of Custom API Policies on the Oracle API PlatformSecrets of Custom API Policies on the Oracle API Platform
Secrets of Custom API Policies on the Oracle API Platform
Phil Wilkins1.2K views
Oracle London Developer Meetup November 2018 by Phil Wilkins
Oracle London Developer Meetup November 2018Oracle London Developer Meetup November 2018
Oracle London Developer Meetup November 2018
Phil Wilkins742 views
London Oracle Developer Meetup - June 18 - Drones with APIs by Phil Wilkins
London Oracle Developer Meetup - June 18 - Drones with APIsLondon Oracle Developer Meetup - June 18 - Drones with APIs
London Oracle Developer Meetup - June 18 - Drones with APIs
Phil Wilkins126 views
London Oracle Developer Meetup April 18 by Phil Wilkins
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
Phil Wilkins420 views
Oracle Developer Meetup March 2018 by Phil Wilkins
Oracle Developer Meetup March 2018Oracle Developer Meetup March 2018
Oracle Developer Meetup March 2018
Phil Wilkins1.1K views
OracleDeveloperMeetup - London 19-12-17 by Phil Wilkins
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins907 views
Look at Oracle Integration Cloud – its relationship to ICS. Customer use Case... by Phil Wilkins
Look at Oracle Integration Cloud – its relationship to ICS. Customer use Case...Look at Oracle Integration Cloud – its relationship to ICS. Customer use Case...
Look at Oracle Integration Cloud – its relationship to ICS. Customer use Case...
Phil Wilkins18.7K views

Recently uploaded

Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionMárton Kodok
11 views55 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides
Keep by
KeepKeep
KeepGeniusee
78 views10 slides
Airline Booking Software by
Airline Booking SoftwareAirline Booking Software
Airline Booking SoftwareSharmiMehta
6 views26 slides
Introduction to Git Source Control by
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source ControlJohn Valentino
5 views18 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
8 views40 slides

Recently uploaded(20)

Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok11 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta6 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino5 views
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app8 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492138 views
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik8 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views

GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)

  • 1. November 2021 IMPLEMENTING GITHUB ACTION HANDLERS ON OCI Phil Wilkins Tech Evangelist & Ace Director Phil.Wilkins@capgemini.com uk.linkedin.com/in/philWilkins @MP3Monster blog.mp3monster.org / phil-wilkins.uk Oracle-integration.cloud /
  • 2. Presentation Title | Author | Date 2 © Capgemini . 2021. All rights reserved | THE ABOUT ME … https://blog.mp3monster.org/ publication-contributions/ Me in 5: • Husband, Father, Blogger & Author • Technical Architect, Tech Evangelist • Work for Capgemini UK as part of a multi award winning team • Work with primarily open source + Oracle middleware • Know more – mp3monster.org https://bit.ly/FluentdBook https://bit.ly/ImplementingAPI https://oracle-integration.cloud
  • 3. Presentation Title | Author | Date 3 © Capgemini . 2021. All rights reserved | CAPGEMINI IS ONE OF THE WORLD'S LARGEST CONSULTING, TECHNOLOGY, AND OUTSOURCING FIRMS & A GLOBAL “FULL SERVICE” BUSINESS TRANSFORMATION PROVIDER Group Workforce: 200,000+ Globally Asia Pacific Latin America Canada United States Mexico Brazil Argentina Europe Morocco Australia People’s Republic of China India Chile Guatemala Russia Singapore Hong Kong North America UK & Ireland Nordics Benelux “It is the quality of our people, and their capacity to deliver fitting solutions, with you and for you, that drive real business results.” Across 40+ countries, 100 nationalities 5Businesses Revenue 12,8 Billion EUR (2017) Central Europe Morocco Net Profit €1,18B  Targeting Value  Mitigating Risk  Optimising Capabilities  Aligning the Organisation Elements to successful collaboration Application Services Infrastructure Services Business Process Outsourcing Consulting (Capgemini Consulting) Local Professional 4
  • 5. Presentation Title | Author | Date 5 © Capgemini . 2021. All rights reserved | Flow of GitHub Actions Like Jenkins but different … • Jenkins has slaves • Jenkins slave most likely run the entire pipeline • Here more likely to break pipeline up • Ability to make highly parallelized
  • 6. Presentation Title | Author | Date 6 © Capgemini . 2021. All rights reserved | Workers for Github Actions 1 GitHub can provide runners (with a cost) • Runs on Azure • Some limitations in runner options • More secure as GitHub  Azure hidden from the internet
  • 7. Presentation Title | Author | Date 7 © Capgemini . 2021. All rights reserved | On-Prem Workers for Github Actions 2 Can deploy to different runners in different locations. • Possibilities for Bandwidth burst for example • GitHub Enterprise enables on-prem repos
  • 8. Presentation Title | Author | Date 8 © Capgemini . 2021. All rights reserved | Workers for Github Actions 3 Runner setups are provided for major cloud providers, but other clouds possible
  • 9. Presentation Title | Author | Date 9 © Capgemini . 2021. All rights reserved | Workers for Github Actions 4 • Oracle provides a prebuilt runner • Lots of resources on using GitHub Actions through Oracle Developer community channels
  • 10. Presentation Title | Author | Date 10 © Capgemini . 2021. All rights reserved | ? Network security Workers for Github Actions This is HTTP traffic over NET going to the worker node – need to consider security BAU for the developer. Managing traffic into GitHub will need good control – avoid unwanted content as it can cascade to our workers. New job work flow, retuning results HTTPS Flow Key
  • 11. How it changes a pipeline PIPELINE IN GITHUB ACTIONS
  • 12. Presentation Title | Author | Date 12 © Capgemini . 2021. All rights reserved | Java Pipeline Promote to Next stage Fail build Code prepository Branching / Release strategy e.g. GitFlow Static security scan e.g. password/token search Dependency Mgmt & 3rd Party Sourcing Ensuring dependencies ok, source from accepted source Checked for malicious content Compile Create JAR Sign artefact Static Code Analysis Coding errors, coding style Unit Testing Unit test, capture code coverage API Testing Test as an API provider and /or as a consumer User Experience & Performance Test for user workflow & performance Dynamic Security Testing Test code for classic errors Package for containers Check packaging for quality & security Sign artefacts Add to trusted registry Store in registry to use at next level Generate documentation Build / update documentation directly from the source coide In the ideal world a Java development pipeline might look like …
  • 13. Presentation Title | Author | Date 13 © Capgemini . 2021. All rights reserved | We might want multiple pipelines for different technologies… We could get GitHub to trigger a monolithic pipeline – but the communicating back outcomes – not so easy Our pipelines will be staged…
  • 14. Presentation Title | Author | Date 14 © Capgemini . 2021. All rights reserved | Promote to Next stage Fail build Granular Pipeline for GitHub? We could make the tasks very granular – each step of the pipeline … Best is probably a middle ground…
  • 15. Presentation Title | Author | Date 15 © Capgemini . 2021. All rights reserved | Promote to Next stage Fail build Granular Pipeline for GitHub? We could make the tasks very granular – each step of the pipeline … Best is probably a middle ground…
  • 17. Presentation Title | Author | Date 17 © Capgemini . 2021. All rights reserved | 1. Get a GitHub runner resources … 1. registration token from the repo 2. Setup SSH key to be used by both ends – keygen or website like https://8gwifi.org/sshfunctions.jsp# 2. Create a configuration for our worker node(s) • Options – Terraform + Ansible to create environment – Preconfigured cloud stack from Oracle (Arm Runner )- https://cloud.oracle.com/resourcemanager/stacks/create?zipUrl=https://github.com/oracle-quickstart/oci-github-actions- runner/releases/download/orm-deploy/orm.zip 3. Ensure all the necessary additional components are installed on the worker node – Benefit of the Terraform + Ansible route is that will be incorporated into the process – Using steps in a Action 4. Configure the GitHub Action 5. Trigger 6. Review runner response information To get our pipeline working … IMPLEMENTING A GITHUB ACTION …
  • 18. Presentation Title | Author | Date 18 © Capgemini . 2021. All rights reserved | Step 1.1
  • 19. Presentation Title | Author | Date 19 © Capgemini . 2021. All rights reserved | Step 1.2
  • 20. Presentation Title | Author | Date 20 © Capgemini . 2021. All rights reserved | Step 2.1 Follow the link to jump into the Stack tool with the correct image
  • 21. Presentation Title | Author | Date 21 © Capgemini . 2021. All rights reserved | Step 2.2
  • 22. Presentation Title | Author | Date 22 © Capgemini . 2021. All rights reserved | Step 2.3
  • 23. Presentation Title | Author | Date 23 © Capgemini . 2021. All rights reserved | Step 2.4
  • 24. Presentation Title | Author | Date 24 © Capgemini . 2021. All rights reserved | Step 2.5
  • 25. Presentation Title | Author | Date 25 © Capgemini . 2021. All rights reserved | Step 2.6
  • 26. Presentation Title | Author | Date 26 © Capgemini . 2021. All rights reserved | Step 2.7
  • 27. Presentation Title | Author | Date 27 © Capgemini . 2021. All rights reserved | Step 2.8
  • 28. Presentation Title | Author | Date 28 © Capgemini . 2021. All rights reserved | CONFIGURING ACTIONS
  • 29. Presentation Title | Author | Date 29 © Capgemini . 2021. All rights reserved | Repo Events Scheduled Manual Triggers - Event on a repository - push or pull - Fork - Comments - Deployment events - Actions can be linked to head or branch(es) - Schedule can be defined using the POSIX cron syntax - https://crontab.guru/ - website to formulate cron schedules - Last editor of the schedule will be notified - Uses the API event workflow_dispatch – needs to be added to triggers OR - To make easy consider a gist to prepopulate values - Execute using a tool e.g. SoapUI GITHUB FLOW TRIGGERS on: push: branches: - main pull_request: branches: - main on: schedule: # * is a special character in YAML so you have to quote this string - cron: '30 5,17 * * *' on: workflow_dispatch : branches [main] Step 4.0
  • 30. Presentation Title | Author | Date 30 © Capgemini . 2021. All rights reserved | PREBUILT TEMPLATES FOR COMMON NEEDS Step 4.0
  • 31. Presentation Title | Author | Date 31 © Capgemini . 2021. All rights reserved | Step 4.1
  • 32. Presentation Title | Author | Date 32 © Capgemini . 2021. All rights reserved | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions name: Python package on: push: branches: [ main ] workflow_dispatch: branches: [ main ] # pull_request: # branches: [ main ] jobs: build: runs-on: oci strategy: fail-fast: false matrix: # python-version: [3.6, 3.7, 3.8, 3.9] python-version: [3.6] steps: - uses: actions/checkout@v2 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install flake8 pytest if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide python -m flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | python -m pytest GITHUB ACTION 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Condition on which we will trigger the job and which parts of the code base We can set up the build to verify multiple versions of Python (does require all to be set up on the runner. The default runner used only has 1 version of Python Stops on the 1st error if set Step 4.1 Make sure the necessary tools are in place Provide a name for the next actions. Outputs split up using named steps We can link actions to operations on specific branches Command-line instruction for the Python lint tool (flake8) Command-line instruction for flake8 to perform complexity checks on the code Execute the pytest configuration in the repo Notation is YAML Execute local shell scripts
  • 33. Presentation Title | Author | Date 33 © Capgemini . 2021. All rights reserved | Step 6.1 Denotes successful execution i.e. no steps have been failed Links to key operations such as run, and displays the associated name Content is a capture of stdout Console output from pytest When things fail in the CI process
  • 34. Presentation Title | Author | Date 34 © Capgemini . 2021. All rights reserved | LOOKING BEYOND THE BASICS
  • 35. Presentation Title | Author | Date 35 © Capgemini . 2021. All rights reserved | GitHub YAML also allows: • Retrieve files as artefacts to allow data sharing between jobs in the same workflow • Define dependencies between each job in a workflow • Define environment variables e.g. setting values for the app being tested such as port numbers • Store secrets and reference them using GitHub secrets feature e.g. passing passwords etc • Define services such as launching containers e.g. hosting a DB in a start state then dropping it for the next run • Develop reusable workflows – e.g. common workflow for a Java app and reuse across multiple Java applications Other features: • Allows the use of Bash Automated Testing System (BATS) and validation of BATS version (https://github.com/bats-core/bats-core) • Labelling to group runners to support certain Actions (e.g. link to the necessary hardware, or deployment location) • Extended security controls for Enterprise repositories OTHER MORE ADVANCED FEATURES
  • 36. Presentation Title | Author | Date 36 © Capgemini . 2021. All rights reserved | 1. How do we provide a good developer experience – in terms of seeing test coverage and other analysis in a consumable visual manner? 2. What if someone commits malicious code into my repository? 3. Network security – access into our network from GitHub? 4. One monolithic development pipeline or more discrete jobs and orchestration in GitHub? 5. Runner clean-up – add IaC to teardown and replace runners? 6. Use GitLab CI/CD or GitHub Actions – similar, but not the same THINGS TO CONSIDER IN BUILDING A GITHUB ACTIONS PIPELINE
  • 37. Presentation Title | Author | Date 37 © Capgemini . 2021. All rights reserved | The following are useful resources for working more with GitHub Actions • Git Hub Actions documentation - https://docs.github.com/en/actions/learn-github-actions • GitHub repository - https://github.com/actions • Blog - https://blog.mp3monster.org/2021/07/05/oracle-cloud-github-actions/ • Oracle Originated posts: • https://blog.kube-mesh.io/ci-cd-on-oracle-kubernetes-engine-using-github-action/ • https://blogs.oracle.com/cloud-infrastructure/post/announcing-github-actions-arm-runners-for-the-arm- compute-platform-on-oracle-cloud-infrastructure • https://blogs.oracle.com/developers/post/adventures-in-cicd-1-intro-getting-started-with-github-actions • Docker with GitHub Actions https://docs.docker.com/ci-cd/github-actions/ • Terraform with GitHub Actions https://learn.hashicorp.com/tutorials/terraform/github-actions USEFUL RESOURCES
  • 39. This presentation contains information that may be privileged or confidential and is the property of the Capgemini Group. Copyright © 2021 Capgemini. All rights reserved. Capgemini is a global leader in partnering with companies to transform and manage their business by harnessing the power of technology. The Group is guided everyday by its purpose of unleashing human energy through technology for an inclusive and sustainable future. It is a responsible and diverse organization of 270,000 team members in nearly 50 countries. With its strong 50 year heritage and deep industry expertise, Capgemini is trusted by its clients to address the entire breadth of their business needs, from strategy and design to operations, fuelled by the fast evolving and innovative world of cloud, data, AI, connectivity, software, digital engineering and platforms. The Group reported in 2020 global revenues of €16 billion. About Capgemini Get the Future You Want | www.capgemini.com

Editor's Notes

  1. Just a file in the GitHub repo
  2. Has build to show
  3. Lots of people view GitHub Actions as inferior to GitLab CICD
  4. https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions
  5. If ORDS is involved then should be considering Selenium Blue icon = utPLSQL