diff --git a/.github/workflows/auto-assign-issues.yml b/.github/workflows/auto-assign-issues.yml
index 0cb9345..adaa8d6 100644
--- a/.github/workflows/auto-assign-issues.yml
+++ b/.github/workflows/auto-assign-issues.yml
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Auto-assign issue'
- uses: pozil/auto-assign-issue@v1.10.0
+ uses: pozil/auto-assign-issue@v1.11.0
with:
assignees: phantsure,tiwarishub,anuragc617,vsvipul,bishal-pdmsft
numOfAssignee: 1
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index c319ce1..002f30d 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@v5
+ - uses: actions/stale@v6
with:
stale-issue-message: 'This issue has become stale and will be closed automatically within a period of time. Sorry about that.'
stale-pr-message: 'This pull request has become stale and will be closed automatically within a period of time. Sorry about that.'
diff --git a/.github/workflows/sync-ghes.yaml b/.github/workflows/sync-ghes.yaml
index 5e949bb..ddd0484 100644
--- a/.github/workflows/sync-ghes.yaml
+++ b/.github/workflows/sync-ghes.yaml
@@ -2,8 +2,7 @@ name: Sync workflows for GHES
on:
push:
- branches: [ $default-branch ]
- workflow_dispatch:
+ branches: [ main ]
jobs:
sync:
diff --git a/README.md b/README.md
index f39892f..7ff406f 100644
--- a/README.md
+++ b/README.md
@@ -12,10 +12,11 @@ These are the workflow files for helping people get started with GitHub Actions.
### Directory structure
-* [ci](ci): solutions for Continuous Integration workflows.
-* [deployments](deployments): solutions for Deployment workflows.
-* [automation](automation): solutions for automating workflows.
-* [code-scanning](code-scanning): starter workflows for [Code Scanning](https://github.com/features/security)
+* [ci](ci): solutions for Continuous Integration workflows
+* [deployments](deployments): solutions for Deployment workflows
+* [automation](automation): solutions for automating workflows
+* [code-scanning](code-scanning): solutions for [Code Scanning](https://github.com/features/security)
+* [pages](pages): solutions for Pages workflows
* [icons](icons): svg icons for the relevant template
Each workflow must be written in YAML and have a `.yml` extension. They also need a corresponding `.properties.json` file that contains extra metadata about the workflow (this is displayed in the GitHub.com UI).
@@ -40,6 +41,8 @@ For example: `ci/django.yml` and `ci/properties/django.properties.json`.
* monitoring
* Automation
* utilities
+* Pages
+* Hugo
### Variables
These variables can be placed in the starter workflow and will be substituted as detailed below:
diff --git a/ci/ant.yml b/ci/ant.yml
index 1614664..e9dba01 100644
--- a/ci/ant.yml
+++ b/ci/ant.yml
@@ -1,5 +1,5 @@
# This workflow will build a Java project with Ant
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-ant
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
name: Java CI
diff --git a/ci/deno.yml b/ci/deno.yml
index 2234bf6..5ee940d 100644
--- a/ci/deno.yml
+++ b/ci/deno.yml
@@ -3,7 +3,7 @@
# separate terms of service, privacy policy, and support
# documentation.
-# This workflow will install Deno then run Deno lint and test.
+# This workflow will install Deno then run `deno lint` and `deno test`.
# For more information see: https://github.com/denoland/setup-deno
name: Deno
@@ -27,7 +27,7 @@ jobs:
- name: Setup Deno
# uses: denoland/setup-deno@v1
- uses: denoland/setup-deno@004814556e37c54a2f6e31384c9e18e983317366
+ uses: denoland/setup-deno@9db7f66e8e16b5699a514448ce994936c63f0d54
with:
deno-version: v1.x
@@ -39,4 +39,4 @@ jobs:
run: deno lint
- name: Run tests
- run: deno test -A --unstable
+ run: deno test -A
diff --git a/ci/docker-publish.yml b/ci/docker-publish.yml
index 41253c1..11dd662 100644
--- a/ci/docker-publish.yml
+++ b/ci/docker-publish.yml
@@ -41,9 +41,9 @@ jobs:
# https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
- uses: sigstore/cosign-installer@7e0881f8fe90b25e305bbf0309761e9314607e25
+ uses: sigstore/cosign-installer@f3c664df7af409cb4873aa5068053ba9d61a57b6 #v2.6.0
with:
- cosign-release: 'v1.9.0'
+ cosign-release: 'v1.11.0'
# Workaround: https://github.com/docker/build-push-action/issues/461
diff --git a/ci/dotnet-desktop.yml b/ci/dotnet-desktop.yml
index bd2cb2e..fd82a39 100644
--- a/ci/dotnet-desktop.yml
+++ b/ci/dotnet-desktop.yml
@@ -69,7 +69,7 @@ jobs:
# Install the .NET Core workload
- name: Install .NET Core
- uses: actions/setup-dotnet@v2
+ uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
diff --git a/ci/dotnet.yml b/ci/dotnet.yml
index a8eccab..f11f050 100644
--- a/ci/dotnet.yml
+++ b/ci/dotnet.yml
@@ -1,3 +1,6 @@
+# This workflow will build a .NET project
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
+
name: .NET
on:
@@ -14,7 +17,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Setup .NET
- uses: actions/setup-dotnet@v2
+ uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Restore dependencies
diff --git a/ci/go.yml b/ci/go.yml
index bb3ec96..4d95674 100644
--- a/ci/go.yml
+++ b/ci/go.yml
@@ -1,3 +1,6 @@
+# This workflow will build a golang project
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
+
name: Go
on:
diff --git a/ci/gradle.yml b/ci/gradle.yml
index 0c0f12c..2be0b58 100644
--- a/ci/gradle.yml
+++ b/ci/gradle.yml
@@ -3,7 +3,7 @@
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Java CI with Gradle
diff --git a/ci/maven.yml b/ci/maven.yml
index 65e0dff..c553f73 100644
--- a/ci/maven.yml
+++ b/ci/maven.yml
@@ -1,5 +1,10 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
-# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
name: Java CI with Maven
@@ -24,3 +29,7 @@ jobs:
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
+
+ # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
+ - name: Update dependency graph
+ uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
diff --git a/ci/node.js.yml b/ci/node.js.yml
index a89108d..f230593 100644
--- a/ci/node.js.yml
+++ b/ci/node.js.yml
@@ -1,5 +1,5 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
name: Node.js CI
diff --git a/ci/npm-publish-github-packages.yml b/ci/npm-publish-github-packages.yml
index 638ccf8..e790f4d 100644
--- a/ci/npm-publish-github-packages.yml
+++ b/ci/npm-publish-github-packages.yml
@@ -1,5 +1,5 @@
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
-# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
+# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Node.js Package
diff --git a/ci/npm-publish.yml b/ci/npm-publish.yml
index c461c85..6cdebaf 100644
--- a/ci/npm-publish.yml
+++ b/ci/npm-publish.yml
@@ -1,5 +1,5 @@
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
-# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
+# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Node.js Package
diff --git a/ci/properties/jekyll-docker.properties.json b/ci/properties/jekyll-docker.properties.json
index bbe279c..7c66dba 100644
--- a/ci/properties/jekyll-docker.properties.json
+++ b/ci/properties/jekyll-docker.properties.json
@@ -1,5 +1,5 @@
{
- "name": "Jekyll",
+ "name": "Jekyll using Docker image",
"description": "Package a Jekyll site using the jekyll/builder Docker image.",
"iconName": "jekyll",
"categories": ["Continuous integration", "HTML"]
diff --git a/ci/python-app.yml b/ci/python-app.yml
index 4b7fa5f..9945382 100644
--- a/ci/python-app.yml
+++ b/ci/python-app.yml
@@ -1,5 +1,5 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python application
diff --git a/ci/python-package.yml b/ci/python-package.yml
index 583a366..de579a3 100644
--- a/ci/python-package.yml
+++ b/ci/python-package.yml
@@ -1,5 +1,5 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python package
diff --git a/ci/python-publish.yml b/ci/python-publish.yml
index ec70354..bdaab28 100644
--- a/ci/python-publish.yml
+++ b/ci/python-publish.yml
@@ -1,5 +1,5 @@
# This workflow will upload a Python Package using Twine when a release is created
-# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
diff --git a/ci/scala.yml b/ci/scala.yml
index 6f80a22..14ba966 100644
--- a/ci/scala.yml
+++ b/ci/scala.yml
@@ -1,3 +1,8 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
name: Scala CI
on:
@@ -24,3 +29,6 @@ jobs:
cache: 'sbt'
- name: Run tests
run: sbt test
+ # Optional: This step uploads information to the GitHub dependency graph and unblocking Dependabot alerts for the repository
+ - name: Upload dependency graph
+ uses: scalacenter/sbt-dependency-submission@ab086b50c947c9774b70f39fc7f6e20ca2706c91
diff --git a/ci/swift.yml b/ci/swift.yml
index 3668fc0..91276e3 100644
--- a/ci/swift.yml
+++ b/ci/swift.yml
@@ -1,3 +1,6 @@
+# This workflow will build a Swift project
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift
+
name: Swift
on:
diff --git a/code-scanning/anchore.yml b/code-scanning/anchore.yml
index a3d2eed..818fb70 100644
--- a/code-scanning/anchore.yml
+++ b/code-scanning/anchore.yml
@@ -9,7 +9,7 @@
# and parameters, see https://github.com/anchore/scan-action. For more
# information on Anchore's container image scanning tool Grype, see
# https://github.com/anchore/grype
-name: Anchore Container Scan
+name: Anchore Grype vulnerability scan
on:
push:
@@ -28,20 +28,21 @@ jobs:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
- actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
steps:
- - name: Checkout the code
+ - name: Check out the code
uses: actions/checkout@v3
- name: Build the Docker image
run: docker build . --file Dockerfile --tag localbuild/testimage:latest
- - name: Run the Anchore scan action itself with GitHub Advanced Security code scanning integration enabled
- uses: anchore/scan-action@b08527d5ae7f7dc76f9621edb6e49eaf47933ccd
+ - name: Run the Anchore Grype scan action
+ uses: anchore/scan-action@d5aa5b6cb9414b0c7771438046ff5bcfa2854ed7
+ id: scan
with:
image: "localbuild/testimage:latest"
- acs-report-enable: true
- fail-build: false
- - name: Upload Anchore Scan Report
+ fail-build: true
+ severity-cutoff: critical
+ - name: Upload vulnerability report
uses: github/codeql-action/upload-sarif@v2
with:
- sarif_file: results.sarif
+ sarif_file: ${{ steps.scan.outputs.sarif }}
diff --git a/code-scanning/apisec-scan.yml b/code-scanning/apisec-scan.yml
index a2dfbd2..f44fd96 100644
--- a/code-scanning/apisec-scan.yml
+++ b/code-scanning/apisec-scan.yml
@@ -46,7 +46,8 @@ permissions:
contents: read
jobs:
- Trigger APIsec scan:
+
+ Trigger_APIsec_scan:
permissions:
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
@@ -54,7 +55,7 @@ jobs:
steps:
- name: APIsec scan
- uses: apisec-inc/apisec-run-scan@f62d0c6fae8a80f97b091a323befdb56e6ad9993
+ uses: apisec-inc/apisec-run-scan@f748a240d69ca6cd7e9532fd0a47bec4ccd6a73c
with:
# The APIsec username with which the scans will be executed
apisec-username: ${{ secrets.apisec_username }}
diff --git a/code-scanning/checkmarx-one.yml b/code-scanning/checkmarx-one.yml
new file mode 100644
index 0000000..d85c0c5
--- /dev/null
+++ b/code-scanning/checkmarx-one.yml
@@ -0,0 +1,55 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+# The Checkmarx One GitHub Action enables you to trigger SAST, SCA, and KICS scans directly from the GitHub workflow.
+# It provides a wrapper around the Checkmarx One CLI Tool which creates a zip archive from your source code repository
+# and uploads it to Checkmarx One for scanning. The Github Action provides easy integration with GitHub while enabling
+# scan customization using the full functionality and flexibility of the CLI tool.
+
+# This is a basic workflow to help you get started with Using Checkmarx One Action,
+# documentation can be found here : https://checkmarx.com/resource/documents/en/34965-68702-checkmarx-one-github-actions.html
+
+name: Checkmarx Scan
+
+# Controls when the workflow will run
+on:
+ pull_request:
+ types: [opened, reopened, synchronize]
+ branches: [ $default-branch, $protected-branches ]
+
+permissions:
+ contents: read
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+ # This workflow contains a single job called "build"
+ build:
+ permissions:
+ contents: read # for actions/checkout to fetch code
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif
+
+ # The type of runner that the job will run on
+ runs-on: ubuntu-latest
+
+ # Steps represent a sequence of tasks that will be executed as part of the job
+ steps:
+ # This step checks out a copy of your repository.
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ # This step creates the Checkmarx One scan
+ - name: Checkmarx One scan
+ uses: checkmarx/ast-github-action@8e887bb93dacc44e0f5b64ee2b06d5815f89d4fc
+ with:
+ base_uri: https://ast.checkmarx.net # This should be replaced by your base uri for Checkmarx One
+ cx_client_id: ${{ secrets.CX_CLIENT_ID }} # This should be created within your Checkmarx One account : https://checkmarx.com/resource/documents/en/34965-118315-authentication-for-checkmarx-one-cli.html#UUID-a4e31a96-1f36-6293-e95a-97b4b9189060_UUID-4123a2ff-32d0-2287-8dd2-3c36947f675e
+ cx_client_secret: ${{ secrets.CX_CLIENT_SECRET }} # This should be created within your Checkmarx One account : https://checkmarx.com/resource/documents/en/34965-118315-authentication-for-checkmarx-one-cli.html#UUID-a4e31a96-1f36-6293-e95a-97b4b9189060_UUID-4123a2ff-32d0-2287-8dd2-3c36947f675e
+ cx_tenant: ${{ secrets.CX_TENANT }} # This should be replaced by your tenant for Checkmarx One
+ additional_params: --report-format sarif --output-path .
+ - name: Upload SARIF file
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ # Path to SARIF file relative to the root of the repository
+ sarif_file: cx_result.sarif
diff --git a/code-scanning/codeql.yml b/code-scanning/codeql.yml
index 00ffcdb..34c5de7 100644
--- a/code-scanning/codeql.yml
+++ b/code-scanning/codeql.yml
@@ -53,7 +53,7 @@ jobs:
# queries: security-extended,security-and-quality
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
diff --git a/code-scanning/ethicalcheck.yml b/code-scanning/ethicalcheck.yml
new file mode 100644
index 0000000..2818bc6
--- /dev/null
+++ b/code-scanning/ethicalcheck.yml
@@ -0,0 +1,69 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+# EthicalCheck addresses the critical need to continuously security test APIs in development and in production.
+
+# EthicalCheck provides the industry’s only free & automated API security testing service that uncovers security vulnerabilities using OWASP API list.
+# Developers relies on EthicalCheck to evaluate every update and release, ensuring that no APIs go to production with exploitable vulnerabilities.
+
+# You develop the application and API, we bring complete and continuous security testing to you, accelerating development.
+
+# Know your API and Applications are secure with EthicalCheck – our free & automated API security testing service.
+
+# How EthicalCheck works?
+# EthicalCheck functions in the following simple steps.
+# 1. Security Testing.
+# Provide your OpenAPI specification or start with a public Postman collection URL.
+# EthicalCheck instantly instrospects your API and creates a map of API endpoints for security testing.
+# It then automatically creates hundreds of security tests that are non-intrusive to comprehensively and completely test for authentication, authorizations, and OWASP bugs your API. The tests addresses the OWASP API Security categories including OAuth 2.0, JWT, Rate Limit etc.
+
+# 2. Reporting.
+# EthicalCheck generates security test report that includes all the tested endpoints, coverage graph, exceptions, and vulnerabilities.
+# Vulnerabilities are fully triaged, it contains CVSS score, severity, endpoint information, and OWASP tagging.
+
+
+# This is a starter workflow to help you get started with EthicalCheck Actions
+
+name: EthicalCheck-Workflow
+
+# Controls when the workflow will run
+on:
+ # Triggers the workflow on push or pull request events but only for the $default-branch branch
+ # Customize trigger events based on your DevSecOps processes.
+ push:
+ branches: [ $default-branch, $protected-branches ]
+ pull_request:
+ branches: [ $default-branch ]
+ schedule:
+ - cron: $cron-weekly
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ Trigger_EthicalCheck:
+ permissions:
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: EthicalCheck Free & Automated API Security Testing Service
+ uses: apisec-inc/ethicalcheck-action@005fac321dd843682b1af6b72f30caaf9952c641
+ with:
+ # The OpenAPI Specification URL or Swagger Path or Public Postman collection URL.
+ oas-url: "http://netbanking.apisec.ai:8080/v2/api-docs"
+ # The email address to which the penetration test report will be sent.
+ email: "xxx@apisec.ai"
+ sarif-result-file: "ethicalcheck-results.sarif"
+
+ - name: Upload sarif file to repository
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ sarif_file: ./ethicalcheck-results.sarif
+
diff --git a/code-scanning/nowsecure-mobile-sbom.yml b/code-scanning/nowsecure-mobile-sbom.yml
new file mode 100644
index 0000000..b9cf039
--- /dev/null
+++ b/code-scanning/nowsecure-mobile-sbom.yml
@@ -0,0 +1,55 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+#
+# NowSecure: The Mobile Security Experts .
+#
+# To use this workflow, you must have a token for NowSecure Platform. If you are a NowSecure customer,
+# you can find it in NowSecure Platform.
+#
+# If you *are not* a NowSecure customer, click here to sign up for a free trial to get access:
+# .
+#
+# Instructions:
+#
+# 1. In the settings for your repository, click "Secrets" then "New repository secret". Name the secret "NS_TOKEN" and
+# paste in your Platform token. If you do not have a Platform token, or wish to create a new one for GitHub, visit
+# NowSecure Platform and go to "Profile & Preferences" then create a token labelled "GitHub".
+#
+# 2. Follow the annotated workflow below and make any necessary modifications then save the workflow to your repository
+# and review the "Dependency graph" tab in the "Insights" pane once the action has run.
+
+name: "NowSecure Mobile SBOM"
+
+on:
+ push:
+ branches: [ $default-branch, $protected-branches ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [ $default-branch ]
+ schedule:
+ - cron: $cron-weekly
+
+permissions:
+ contents: read
+
+jobs:
+ nowsecure:
+ name: NowSecure Mobile SBOM
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Build your application
+ run: ./gradlew assembleDebug # Update this to build your Android or iOS application
+
+ - name: NowSecure upload app
+ uses: nowsecure/nowsecure-sbom-action@ecb731b6f17a83fa53f756f9dae2ec7034c5ed7c
+ with:
+ token: ${{ secrets.NS_TOKEN }}
+ app_file: app-debug.apk # Update this to a path to your .ipa or .apk
+ group_id: {{ groupId }} # Update this to your desired Platform group ID
diff --git a/code-scanning/properties/anchore-syft.properties.json b/code-scanning/properties/anchore-syft.properties.json
index 815f8b2..aa4cb1e 100644
--- a/code-scanning/properties/anchore-syft.properties.json
+++ b/code-scanning/properties/anchore-syft.properties.json
@@ -1,6 +1,6 @@
{
"name": "Anchore Syft SBOM Scan",
- "organization": "Anchore",
+ "creator": "Anchore",
"description": "Produce Software Bills of Materials based on Anchore's open source Syft tool.",
"iconName": "anchore",
"categories": ["Code Scanning", "dockerfile", "dependency-management"]
diff --git a/code-scanning/properties/anchore.properties.json b/code-scanning/properties/anchore.properties.json
index d997da4..94634dd 100644
--- a/code-scanning/properties/anchore.properties.json
+++ b/code-scanning/properties/anchore.properties.json
@@ -1,7 +1,7 @@
{
- "name": "Anchore Container Scan",
- "creator": "Indeni Cloudrail",
- "description": "Produce container image vulnerability and compliance reports based on the open-source Anchore container image scanner.",
+ "name": "Anchore Grype Vulnerability Scan",
+ "creator": "Anchore",
+ "description": "Produce source and container vulnerability reports based on Anchore's open source Grype tool.",
"iconName": "anchore",
"categories": ["Code Scanning", "dockerfile"]
-}
\ No newline at end of file
+}
diff --git a/code-scanning/properties/checkmarx-one.properties.json b/code-scanning/properties/checkmarx-one.properties.json
new file mode 100644
index 0000000..c1b2eea
--- /dev/null
+++ b/code-scanning/properties/checkmarx-one.properties.json
@@ -0,0 +1,7 @@
+{
+ "name": "Checkmarx",
+ "creator": "Checkmarx",
+ "description": "Beat vulnerabilities with more secure code.Scan your code with Checkmarx One and see results in the GitHub code scanning.",
+ "iconName": "checkmarx",
+ "categories": ["Code Scanning", "javascript", "python", "java", "php", "c#", "c", "c++", "ruby", "swift", "go", "json", "kotlin", "apex", "scala", "perl"]
+}
diff --git a/code-scanning/properties/codeql.properties.json b/code-scanning/properties/codeql.properties.json
index ddb4627..8ee80b4 100644
--- a/code-scanning/properties/codeql.properties.json
+++ b/code-scanning/properties/codeql.properties.json
@@ -1,6 +1,7 @@
{
"name": "CodeQL Analysis",
"creator": "GitHub",
+ "enterprise": true,
"description": "Security analysis from GitHub for C, C++, C#, Go, Java, JavaScript, TypeScript, Python, and Ruby developers.",
"iconName": "octicon mark-github",
"categories": ["Code Scanning", "C", "C++", "C#", "Go", "Java", "JavaScript", "TypeScript", "Python", "Ruby"]
diff --git a/code-scanning/properties/eslint.properties.json b/code-scanning/properties/eslint.properties.json
index a84646a..2a1271f 100644
--- a/code-scanning/properties/eslint.properties.json
+++ b/code-scanning/properties/eslint.properties.json
@@ -2,10 +2,11 @@
"name": "ESLint",
"description": "A tool for identifying and reporting the problems found in ECMAScript/JavaScript code.",
"iconName": "eslint",
+ "enterprise": false,
"categories": [
"Code Scanning",
"JavaScript",
"EcmaScript",
"TypeScript"
]
-}
\ No newline at end of file
+}
diff --git a/code-scanning/properties/ethicalcheck.properties.json b/code-scanning/properties/ethicalcheck.properties.json
new file mode 100644
index 0000000..8728ca7
--- /dev/null
+++ b/code-scanning/properties/ethicalcheck.properties.json
@@ -0,0 +1,24 @@
+{
+ "name": "EthicalCheck",
+ "creator": "APIsec",
+ "description": "EthicalCheck provides the industry’s only free & automated API security testing service that uncovers security vulnerabilities using OWASP API list.",
+ "iconName": "apisec",
+ "categories": [
+ "Code Scanning",
+ "C",
+ "C#",
+ "C++",
+ "Go",
+ "Java",
+ "JavaScript",
+ "Kotlin",
+ "Objective C",
+ "PHP",
+ "Python",
+ "Ruby",
+ "Rust",
+ "Scala",
+ "Swift",
+ "TypeScript"
+ ]
+}
diff --git a/code-scanning/properties/nowsecure-mobile-sbom.properties.json b/code-scanning/properties/nowsecure-mobile-sbom.properties.json
new file mode 100644
index 0000000..32a7964
--- /dev/null
+++ b/code-scanning/properties/nowsecure-mobile-sbom.properties.json
@@ -0,0 +1,21 @@
+{
+ "name": "NowSecure Mobile SBOM",
+ "creator": "NowSecure",
+ "description": "Generate a Mobile SBOM for an application and submit to Dependency Graph",
+ "iconName": "nowsecure",
+ "categories": [
+ "Code Scanning",
+ "Java",
+ "Kotlin",
+ "Scala",
+ "Swift",
+ "Objective C",
+ "C",
+ "C++",
+ "C#",
+ "Rust",
+ "JavaScript",
+ "TypeScript",
+ "Node"
+ ]
+}
diff --git a/code-scanning/properties/zscaler-iac-scan.properties.json b/code-scanning/properties/zscaler-iac-scan.properties.json
new file mode 100644
index 0000000..274d17a
--- /dev/null
+++ b/code-scanning/properties/zscaler-iac-scan.properties.json
@@ -0,0 +1,7 @@
+{
+ "name": "Zscaler IaC Scan",
+ "creator": "Zscaler CWP",
+ "description": "Scan your Infrastructure as Code files using Zscaler Infrastructure as Code (IaC) Scan app",
+ "iconName": "zscaler",
+ "categories": ["Code Scanning"]
+}
\ No newline at end of file
diff --git a/code-scanning/properties/zscan.properties.json b/code-scanning/properties/zscan.properties.json
new file mode 100644
index 0000000..6b55756
--- /dev/null
+++ b/code-scanning/properties/zscan.properties.json
@@ -0,0 +1,14 @@
+{
+ "name": "zScan",
+ "creator": "Zimperium",
+ "description": "The zimperium-zscan GitHub action scans your mobile app binary (iOS or Android) and identifies security, privacy, and compliance-related vulnerabilities. ",
+ "iconName": "zscan",
+ "categories": [
+ "Code Scanning",
+ "Java",
+ "Kotlin",
+ "Scala",
+ "Swift",
+ "Objective C"
+ ]
+}
diff --git a/code-scanning/scorecards.yml b/code-scanning/scorecards.yml
index 8ca5094..11e305f 100644
--- a/code-scanning/scorecards.yml
+++ b/code-scanning/scorecards.yml
@@ -1,7 +1,14 @@
+# This workflow uses actions that are not certified by GitHub. They are provided
+# by a third-party and are governed by separate terms of service, privacy
+# policy, and support documentation.
+
name: Scorecards supply-chain security
on:
- # Only the default branch is supported.
+ # For Branch-Protection check. Only the default branch is supported. See
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
+ # To guarantee Maintained check is occasionally updated. See
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: $cron-weekly
push:
@@ -17,20 +24,20 @@ jobs:
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
- # Used to receive a badge.
+ # Needed to publish results and get a badge (see publish_results below).
id-token: write
- # Needs for private repositories.
- contents: read
- actions: read
-
+ # Uncomment the permissions below if installing in a private repository.
+ # contents: read
+ # actions: read
+
steps:
- name: "Checkout code"
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # tag=v3.0.0
+ uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
with:
persist-credentials: false
- name: "Run analysis"
- uses: ossf/scorecard-action@865b4092859256271290c77adbd10a43f4779972 # tag=v2.0.3
+ uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v2.0.6
with:
results_file: results.sarif
results_format: sarif
@@ -40,23 +47,26 @@ jobs:
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
# repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
- # Publish the results for public repositories to enable scorecard badges. For more details, see
- # https://github.com/ossf/scorecard-action#publishing-results.
- # For private repositories, `publish_results` will automatically be set to `false`, regardless
- # of the value entered here.
+ # Public repositories:
+ # - Publish results to OpenSSF REST API for easy access by consumers
+ # - Allows the repository to include the Scorecard badge.
+ # - See https://github.com/ossf/scorecard-action#publishing-results.
+ # For private repositories:
+ # - `publish_results` will always be set to `false`, regardless
+ # of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
- uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # tag=v3.0.0
+ uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
-
+
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@5f532563584d71fdef14ee64d17bafb34f751ce5 # tag=v1.0.26
+ uses: github/codeql-action/upload-sarif@807578363a7869ca324a79039e6db9c843e0e100 # v2.1.27
with:
sarif_file: results.sarif
diff --git a/code-scanning/soos-dast-scan.yml b/code-scanning/soos-dast-scan.yml
index cf3b1b7..95dfd67 100644
--- a/code-scanning/soos-dast-scan.yml
+++ b/code-scanning/soos-dast-scan.yml
@@ -3,13 +3,18 @@
# separate terms of service, privacy policy, and support
# documentation.
#
-# SOOS is the easy-to-integrate software security solution for your whole team, learn more at https://soos.io/
+# SOOS is the easy-to-integrate and affordable software security solution for your whole team.
+# Learn more at https://soos.io/
#
-# To use this action you need to fill the following requirements:
+# To use this action, perform the following steps:
#
-# 1. Create an account on https://app.soos.io to obtain a Client ID and API Key (Free 30 days trials for both our SCA/DAST product).
+# 1. Create an account on https://app.soos.io. SOOS offers a free 30 day trial for our SCA and DAST products.
#
-# 2. Set up your API KEY/Client ID as Github Secrets named SOOS_CLIENT_ID & SOOS_API_KEY. (Also set SOOS_GITHUB_PAT with your Github Personal Access Token if you're going to use sarif upload)
+# 2. Navigate to the "Integrate" page in the SOOS app (https://app.soos.io/integrate). Note the "API Credentials" section of this page; the keys you will need for the next step are here.
+#
+# 3. Set up your SOOS API Key and SOOS Client Id as Github Secrets named SOOS_API_KEY and SOOS_CLIENT_ID.
+#
+# 4. (Optional) If you'd like to upload SARIF results of DAST scans to GitHub, set SOOS_GITHUB_PAT with your Github Personal Access Token.
#
name: "SOOS DAST Scan"
@@ -29,7 +34,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Run SOOS DAST Scan
- uses: soos-io/soos-dast-github-action@b524e2cfbc4f4a5733153a7e624f569913f6c6e9
+ uses: soos-io/soos-dast-github-action@093de8c09530d4b96f12322adeb74444def866db # Use latest version from https://github.com/marketplace/actions/soos-dast
with:
client_id: ${{ secrets.SOOS_CLIENT_ID }}
api_key: ${{ secrets.SOOS_API_KEY }}
diff --git a/code-scanning/zscaler-iac-scan.yml b/code-scanning/zscaler-iac-scan.yml
new file mode 100644
index 0000000..e880bdf
--- /dev/null
+++ b/code-scanning/zscaler-iac-scan.yml
@@ -0,0 +1,56 @@
+#This workflow uses actions that are not certified by GitHub.
+#They are provided by a third party and are governed by
+#separate terms of service, privacy policy, and support
+#documentation.
+
+#This workflow runs the Zscaler Infrastructure as Code (IaC) Scan app,
+#which detects security misconfigurations in IaC templates and publishes the findings
+#under the code scanning alerts section within the repository.
+
+#Log into the Zscaler Posture Control(ZPC) Portal to begin the onboarding process.
+#Copy the client ID and client secret key generated during the onboarding process and configure.
+#GitHub secrets (ZSCANNER_CLIENT_ID, ZSCANNER_CLIENT_SECRET).
+
+#Refer https://github.com/marketplace/actions/zscaler-iac-scan for additional details on setting up this workflow.
+#Any issues with this workflow, please raise it on https://github.com/ZscalerCWP/Zscaler-IaC-Action/issues for further investigation.
+
+name: Zscaler IaC Scan
+on:
+ push:
+ branches: [ $default-branch, $protected-branches ]
+ pull_request:
+ branches: [ $default-branch ]
+ schedule:
+ - cron: $cron-weekly
+
+permissions:
+ contents: read
+
+jobs:
+ zscaler-iac-scan:
+ permissions:
+ contents: read # for actions/checkout to fetch code
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+ runs-on: ubuntu-latest
+ steps:
+ - name : Code Checkout
+ uses: actions/checkout@v3
+ - name : Zscaler IAC Scan
+ uses : ZscalerCWP/Zscaler-IaC-Action@8d2afb33b10b4bd50e2dc2c932b37c6e70ac1087
+ id : zscaler-iac-scan
+ with:
+ client_id : ${{ secrets.ZSCANNER_CLIENT_ID }}
+ client_secret : ${{ secrets.ZSCANNER_CLIENT_SECRET }}
+ #This is the user region specified during the onboarding process within the ZPC Admin Portal.
+ region : 'US'
+ iac_dir : #Enter the IaC directory path from root.
+ iac_file : #Enter the IaC file path from root.
+ output_format : #(Optional) By default, the output is provided in a human readable format. However, if you require a different format, you can specify it here.
+ #To fail the build based on policy violations identified in the IaC templates, set the input value (fail_build) to true.
+ fail_build : #Enter true/false
+ #Ensure that the following step is included in order to post the scan results under the code scanning alerts section within the repository.
+ - name: Upload SARIF file
+ if: ${{ success() || failure() && (steps.zscaler-iac-scan.outputs.sarif_file_path != '') }}
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ sarif_file: ${{ steps.zscaler-iac-scan.sarif_file_path }}
diff --git a/code-scanning/zscan.yml b/code-scanning/zscan.yml
new file mode 100644
index 0000000..1ac6bbd
--- /dev/null
+++ b/code-scanning/zscan.yml
@@ -0,0 +1,61 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+#
+# The zimperium-zscan GitHub action scans your mobile app binary (iOS or Android)
+# and identifies security, privacy, and compliance-related vulnerabilities.
+#
+# Prerequisites:
+# * An active Zimperium zScan account is required. If you are not an existing Zimperium
+# zScan customer, please request a zSCAN demo by visiting https://www.zimperium.com/contact-us.
+# * Either GitHub Advanced Security (GHAS) or a public repository is required to display
+# issues and view the remediation information inside of GitHub code scanning alerts.
+#
+# For additional information and setup instructions
+# please visit: https://github.com/Zimperium/zScanMarketplace#readme
+
+name: "Zimperium zScan"
+
+on:
+ push:
+ branches: [ $default-branch, $protected-branches ]
+ pull_request:
+ branches: [ $default-branch ]
+
+permissions:
+ contents: read
+
+jobs:
+ zscan:
+ name: zScan
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read # for actions/checkout to fetch code
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Execute gradle build
+ run: ./gradlew build # Change this to build your mobile application
+
+ - name: Run Zimperium zScan
+ uses: zimperium/zscanmarketplace@bfc6670f6648d796098c251ccefcfdb98983174d
+ timeout-minutes: 60
+ with:
+ # REPLACE: Zimperium Client Environment Name
+ client_env: env_string
+ # REPLACE: Zimperium Client ID
+ client_id: id_string
+ # REPLACE: Zimperium Client Secret
+ client_secret: ${{ secrets.ZSCAN_CLIENT_SECRET }}
+ # REPLACE: The path to an .ipa or .apk
+ app_file: app-release-unsigned.apk
+
+ - name: Upload SARIF file
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ sarif_file: Zimperium.sarif
+
\ No newline at end of file
diff --git a/deployments/azure-kubernetes-service-helm.yml b/deployments/azure-kubernetes-service-helm.yml
index 83a9163..86582e7 100644
--- a/deployments/azure-kubernetes-service-helm.yml
+++ b/deployments/azure-kubernetes-service-helm.yml
@@ -1,14 +1,16 @@
# This workflow will build and push an application to a Azure Kubernetes Service (AKS) cluster when you push your code
#
# This workflow assumes you have already created the target AKS cluster and have created an Azure Container Registry (ACR)
+# The ACR should be attached to the AKS cluster
# For instructions see:
# - https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal
# - https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal
+# - https://learn.microsoft.com/en-us/azure/aks/cluster-container-registry-integration?tabs=azure-cli#configure-acr-integration-for-existing-aks-clusters
# - https://github.com/Azure/aks-create-action
#
# To configure this workflow:
#
-# 1. Set the following secrets in your repository (instructions for getting these
+# 1. Set the following secrets in your repository (instructions for getting these
# https://docs.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-cli%2Clinux)):
# - AZURE_CLIENT_ID
# - AZURE_TENANT_ID
@@ -34,7 +36,7 @@ name: Build and deploy an app to AKS with Helm
on:
push:
- branches: [ $default-branch ]
+ branches: [$default-branch]
workflow_dispatch:
env:
@@ -42,7 +44,6 @@ env:
CONTAINER_NAME: "your-container-name"
RESOURCE_GROUP: "your-resource-group"
CLUSTER_NAME: "your-cluster-name"
- IMAGE_PULL_SECRET_NAME: "your-image-pull-secret-name"
CHART_PATH: "your-chart-path"
CHART_OVERRIDE_PATH: "your-chart-override-path"
@@ -53,63 +54,21 @@ jobs:
id-token: write
runs-on: ubuntu-latest
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Builds and pushes an image up to your Azure Container Registry
- - name: Build and push image to ACR
- run: |
- az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- createSecret:
- permissions:
- contents: read
- id-token: write
- runs-on: ubuntu-latest
- steps:
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
-
- # Retrieves the credentials for pulling images from your Azure Container Registry
- - name: Get ACR credentials
- run: |
- az acr update -n ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} --admin-enabled true
- ACR_USERNAME=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query username -o tsv)
- ACR_PASSWORD=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query passwords[0].value -o tsv)
- echo "::add-mask::${ACR_USERNAME}"
- echo "::set-output name=username::${ACR_USERNAME}"
- echo "::add-mask::${ACR_PASSWORD}"
- echo "::set-output name=password::${ACR_PASSWORD}"
- id: get-acr-creds
-
- # Creates a kubernetes secret on your Azure Kubernetes Service cluster that matches up to the credentials from the last step
- - name: Create K8s secret for pulling image from ACR
- uses: Azure/k8s-create-secret@v1.1
- with:
- container-registry-url: ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io
- container-registry-username: ${{ steps.get-acr-creds.outputs.username }}
- container-registry-password: ${{ steps.get-acr-creds.outputs.password }}
- secret-name: ${{ env.IMAGE_PULL_SECRET_NAME }}
+ # Builds and pushes an image up to your Azure Container Registry
+ - name: Build and push image to ACR
+ run: |
+ az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
deploy:
permissions:
@@ -117,45 +76,43 @@ jobs:
contents: read
id-token: write
runs-on: ubuntu-latest
- needs: [buildImage, createSecret]
+ needs: [buildImage]
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Runs Helm to create manifest files
- - name: Bake deployment
- uses: azure/k8s-bake@v2.1
- with:
- renderEngine: 'helm'
- helmChart: ${{ env.CHART_PATH }}
- overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
- overrides: |
- replicas:2
- helm-version: 'latest'
- id: bake
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Deploys application based on manifest files from previous step
- - name: Deploy application
- uses: Azure/k8s-deploy@v3.1
- with:
- action: deploy
- manifests: ${{ steps.bake.outputs.manifestsBundle }}
- images: |
- ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
- imagepullsecrets: |
- ${{ env.IMAGE_PULL_SECRET_NAME }}
\ No newline at end of file
+ # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
+ - name: Get K8s context
+ uses: azure/aks-set-context@v3
+ with:
+ resource-group: ${{ env.RESOURCE_GROUP }}
+ cluster-name: ${{ env.CLUSTER_NAME }}
+
+ # Runs Helm to create manifest files
+ - name: Bake deployment
+ uses: azure/k8s-bake@v2
+ with:
+ renderEngine: "helm"
+ helmChart: ${{ env.CHART_PATH }}
+ overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
+ overrides: |
+ replicas:2
+ helm-version: "latest"
+ id: bake
+
+ # Deploys application based on manifest files from previous step
+ - name: Deploy application
+ uses: Azure/k8s-deploy@v4
+ with:
+ action: deploy
+ manifests: ${{ steps.bake.outputs.manifestsBundle }}
+ images: |
+ ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
diff --git a/deployments/azure-kubernetes-service-kompose.yml b/deployments/azure-kubernetes-service-kompose.yml
index 0e76365..a0e6bdd 100644
--- a/deployments/azure-kubernetes-service-kompose.yml
+++ b/deployments/azure-kubernetes-service-kompose.yml
@@ -1,14 +1,16 @@
# This workflow will build and push an application to a Azure Kubernetes Service (AKS) cluster when you push your code
#
# This workflow assumes you have already created the target AKS cluster and have created an Azure Container Registry (ACR)
+# The ACR should be attached to the AKS cluster
# For instructions see:
# - https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal
# - https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal
+# - https://learn.microsoft.com/en-us/azure/aks/cluster-container-registry-integration?tabs=azure-cli#configure-acr-integration-for-existing-aks-clusters
# - https://github.com/Azure/aks-create-action
#
# To configure this workflow:
#
-# 1. Set the following secrets in your repository (instructions for getting these
+# 1. Set the following secrets in your repository (instructions for getting these
# https://docs.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-cli%2Clinux):
# - AZURE_CLIENT_ID
# - AZURE_TENANT_ID
@@ -33,7 +35,7 @@ name: Build and deploy an app to AKS with Kompose
on:
push:
- branches: [ $default-branch ]
+ branches: [$default-branch]
workflow_dispatch:
env:
@@ -41,7 +43,6 @@ env:
CONTAINER_NAME: "your-container-name"
RESOURCE_GROUP: "your-resource-group"
CLUSTER_NAME: "your-cluster-name"
- IMAGE_PULL_SECRET_NAME: "your-image-pull-secret-name"
DOCKER_COMPOSE_FILE_PATH: "your-docker-compose-file-path"
jobs:
@@ -51,106 +52,62 @@ jobs:
id-token: write
runs-on: ubuntu-latest
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Builds and pushes an image up to your Azure Container Registry
- - name: Build and push image to ACR
- run: |
- az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
-
- createSecret:
- permissions:
- contents: read
- id-token: write
- runs-on: ubuntu-latest
- steps:
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Retrieves the credentials for pulling images from your Azure Container Registry
- - name: Get ACR credentials
- run: |
- az acr update -n ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} --admin-enabled true
- ACR_USERNAME=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query username -o tsv)
- ACR_PASSWORD=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query passwords[0].value -o tsv)
- echo "::add-mask::${ACR_USERNAME}"
- echo "::set-output name=username::${ACR_USERNAME}"
- echo "::add-mask::${ACR_PASSWORD}"
- echo "::set-output name=password::${ACR_PASSWORD}"
- id: get-acr-creds
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+
+ # Builds and pushes an image up to your Azure Container Registry
+ - name: Build and push image to ACR
+ run: |
+ az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
- # Creates a kubernetes secret on your Azure Kubernetes Service cluster that matches up to the credentials from the last step
- - name: Create K8s secret for pulling image from ACR
- uses: Azure/k8s-create-secret@v1.1
- with:
- container-registry-url: ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io
- container-registry-username: ${{ steps.get-acr-creds.outputs.username }}
- container-registry-password: ${{ steps.get-acr-creds.outputs.password }}
- secret-name: ${{ env.IMAGE_PULL_SECRET_NAME }}
-
deploy:
permissions:
actions: read
contents: read
id-token: write
runs-on: ubuntu-latest
- needs: [buildImage, createSecret]
+ needs: [buildImage]
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Runs Kompose to create manifest files
- - name: Bake deployment
- uses: azure/k8s-bake@v2.1
- with:
- renderEngine: 'kompose'
- dockerComposeFile: ${{ env.DOCKER_COMPOSE_FILE_PATH }}
- kompose-version: 'latest'
- id: bake
+ # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
+ - name: Get K8s context
+ uses: azure/aks-set-context@v3
+ with:
+ resource-group: ${{ env.RESOURCE_GROUP }}
+ cluster-name: ${{ env.CLUSTER_NAME }}
- # Deploys application based on manifest files from previous step
- - name: Deploy application
- uses: Azure/k8s-deploy@v3.1
- with:
- action: deploy
- manifests: ${{ steps.bake.outputs.manifestsBundle }}
- images: |
- ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
- imagepullsecrets: |
- ${{ env.IMAGE_PULL_SECRET_NAME }}
+ # Runs Kompose to create manifest files
+ - name: Bake deployment
+ uses: azure/k8s-bake@v2
+ with:
+ renderEngine: "kompose"
+ dockerComposeFile: ${{ env.DOCKER_COMPOSE_FILE_PATH }}
+ kompose-version: "latest"
+ id: bake
+
+ # Deploys application based on manifest files from previous step
+ - name: Deploy application
+ uses: Azure/k8s-deploy@v4
+ with:
+ action: deploy
+ manifests: ${{ steps.bake.outputs.manifestsBundle }}
+ images: |
+ ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
diff --git a/deployments/azure-kubernetes-service-kustomize.yml b/deployments/azure-kubernetes-service-kustomize.yml
index 1a89f3c..6c87057 100644
--- a/deployments/azure-kubernetes-service-kustomize.yml
+++ b/deployments/azure-kubernetes-service-kustomize.yml
@@ -1,14 +1,16 @@
# This workflow will build and push an application to a Azure Kubernetes Service (AKS) cluster when you push your code
#
# This workflow assumes you have already created the target AKS cluster and have created an Azure Container Registry (ACR)
+# The ACR should be attached to the AKS cluster
# For instructions see:
# - https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal
# - https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal
+# - https://learn.microsoft.com/en-us/azure/aks/cluster-container-registry-integration?tabs=azure-cli#configure-acr-integration-for-existing-aks-clusters
# - https://github.com/Azure/aks-create-action
#
# To configure this workflow:
#
-# 1. Set the following secrets in your repository (instructions for getting these
+# 1. Set the following secrets in your repository (instructions for getting these
# https://docs.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-cli%2Clinux):
# - AZURE_CLIENT_ID
# - AZURE_TENANT_ID
@@ -33,7 +35,7 @@ name: Build and deploy an app to AKS with Kustomize
on:
push:
- branches: [ $default-branch ]
+ branches: [$default-branch]
workflow_dispatch:
env:
@@ -41,7 +43,6 @@ env:
CONTAINER_NAME: "your-container-name"
RESOURCE_GROUP: "your-resource-group"
CLUSTER_NAME: "your-cluster-name"
- IMAGE_PULL_SECRET_NAME: "your-image-pull-secret-name"
KUSTOMIZE_PATH: "your-kustomize-path"
jobs:
@@ -51,106 +52,62 @@ jobs:
id-token: write
runs-on: ubuntu-latest
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Builds and pushes an image up to your Azure Container Registry
- - name: Build and push image to ACR
- run: |
- az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
-
- createSecret:
- permissions:
- contents: read
- id-token: write
- runs-on: ubuntu-latest
- steps:
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Builds and pushes an image up to your Azure Container Registry
+ - name: Build and push image to ACR
+ run: |
+ az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
- # Retrieves the credentials for pulling images from your Azure Container Registry
- - name: Get ACR credentials
- run: |
- az acr update -n ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} --admin-enabled true
- ACR_USERNAME=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query username -o tsv)
- ACR_PASSWORD=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query passwords[0].value -o tsv)
- echo "::add-mask::${ACR_USERNAME}"
- echo "::set-output name=username::${ACR_USERNAME}"
- echo "::add-mask::${ACR_PASSWORD}"
- echo "::set-output name=password::${ACR_PASSWORD}"
- id: get-acr-creds
-
- # Creates a kubernetes secret on your Azure Kubernetes Service cluster that matches up to the credentials from the last step
- - name: Create K8s secret for pulling image from ACR
- uses: Azure/k8s-create-secret@v1.1
- with:
- container-registry-url: ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io
- container-registry-username: ${{ steps.get-acr-creds.outputs.username }}
- container-registry-password: ${{ steps.get-acr-creds.outputs.password }}
- secret-name: ${{ env.IMAGE_PULL_SECRET_NAME }}
-
deploy:
permissions:
actions: read
contents: read
id-token: write
runs-on: ubuntu-latest
- needs: [buildImage, createSecret]
+ needs: [buildImage]
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
+ - name: Get K8s context
+ uses: azure/aks-set-context@v3
+ with:
+ resource-group: ${{ env.RESOURCE_GROUP }}
+ cluster-name: ${{ env.CLUSTER_NAME }}
- # Runs Kustomize to create manifest files
- - name: Bake deployment
- uses: azure/k8s-bake@v2.1
- with:
- renderEngine: 'kustomize'
- kustomizationPath: ${{ env.KUSTOMIZE_PATH }}
- kubectl-version: latest
- id: bake
+ # Runs Kustomize to create manifest files
+ - name: Bake deployment
+ uses: azure/k8s-bake@v2
+ with:
+ renderEngine: "kustomize"
+ kustomizationPath: ${{ env.KUSTOMIZE_PATH }}
+ kubectl-version: latest
+ id: bake
- # Deploys application based on manifest files from previous step
- - name: Deploy application
- uses: Azure/k8s-deploy@v3.1
- with:
- action: deploy
- manifests: ${{ steps.bake.outputs.manifestsBundle }}
- images: |
- ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
- imagepullsecrets: |
- ${{ env.IMAGE_PULL_SECRET_NAME }}
\ No newline at end of file
+ # Deploys application based on manifest files from previous step
+ - name: Deploy application
+ uses: Azure/k8s-deploy@v4
+ with:
+ action: deploy
+ manifests: ${{ steps.bake.outputs.manifestsBundle }}
+ images: |
+ ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
diff --git a/deployments/azure-kubernetes-service.yml b/deployments/azure-kubernetes-service.yml
index 3e49419..f0b2b38 100644
--- a/deployments/azure-kubernetes-service.yml
+++ b/deployments/azure-kubernetes-service.yml
@@ -1,9 +1,11 @@
# This workflow will build and push an application to a Azure Kubernetes Service (AKS) cluster when you push your code
#
# This workflow assumes you have already created the target AKS cluster and have created an Azure Container Registry (ACR)
+# The ACR should be attached to the AKS cluster
# For instructions see:
# - https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal
# - https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal
+# - https://learn.microsoft.com/en-us/azure/aks/cluster-container-registry-integration?tabs=azure-cli#configure-acr-integration-for-existing-aks-clusters
# - https://github.com/Azure/aks-create-action
#
# To configure this workflow:
@@ -29,7 +31,7 @@ name: Build and deploy an app to AKS
on:
push:
- branches: [ $default-branch ]
+ branches: [$default-branch]
workflow_dispatch:
env:
@@ -37,8 +39,7 @@ env:
CONTAINER_NAME: "your-container-name"
RESOURCE_GROUP: "your-resource-group"
CLUSTER_NAME: "your-cluster-name"
- IMAGE_PULL_SECRET_NAME: "your-image-pull-secret-name"
- DEPLOYMENT_MANIFEST_PATH: 'your-deployment-manifest-path'
+ DEPLOYMENT_MANIFEST_PATH: "your-deployment-manifest-path"
jobs:
buildImage:
@@ -47,63 +48,21 @@ jobs:
id-token: write
runs-on: ubuntu-latest
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Builds and pushes an image up to your Azure Container Registry
- - name: Build and push image to ACR
- run: |
- az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- createSecret:
- permissions:
- contents: read
- id-token: write
- runs-on: ubuntu-latest
- steps:
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- # Retrieves the credentials for pulling images from your Azure Container Registry
- - name: Get ACR credentials
- run: |
- az acr update -n ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} --admin-enabled true
- ACR_USERNAME=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query username -o tsv)
- ACR_PASSWORD=$(az acr credential show -g ${{ env.RESOURCE_GROUP }} -n ${{ env.AZURE_CONTAINER_REGISTRY }} --query passwords[0].value -o tsv)
- echo "::add-mask::${ACR_USERNAME}"
- echo "::set-output name=username::${ACR_USERNAME}"
- echo "::add-mask::${ACR_PASSWORD}"
- echo "::set-output name=password::${ACR_PASSWORD}"
- id: get-acr-creds
-
- # Creates a kubernetes secret on your Azure Kubernetes Service cluster that matches up to the credentials from the last step
- - name: Create K8s secret for pulling image from ACR
- uses: Azure/k8s-create-secret@v1.1
- with:
- container-registry-url: ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io
- container-registry-username: ${{ steps.get-acr-creds.outputs.username }}
- container-registry-password: ${{ steps.get-acr-creds.outputs.password }}
- secret-name: ${{ env.IMAGE_PULL_SECRET_NAME }}
+ # Builds and pushes an image up to your Azure Container Registry
+ - name: Build and push image to ACR
+ run: |
+ az acr build --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
deploy:
permissions:
@@ -111,33 +70,31 @@ jobs:
contents: read
id-token: write
runs-on: ubuntu-latest
- needs: [buildImage, createSecret]
+ needs: [buildImage]
steps:
- # Checks out the repository this file is in
- - uses: actions/checkout@v3
-
- # Logs in with your Azure credentials
- - name: Azure login
- uses: azure/login@v1.4.3
- with:
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
- subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
-
- # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
- - name: Get K8s context
- uses: azure/aks-set-context@v2.0
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
+ # Checks out the repository this file is in
+ - uses: actions/checkout@v3
- # Deploys application based on given manifest file
- - name: Deploys application
- uses: Azure/k8s-deploy@v3.1
- with:
- action: deploy
- manifests: ${{ env.DEPLOYMENT_MANIFEST_PATH }}
- images: |
- ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
- imagepullsecrets: |
- ${{ env.IMAGE_PULL_SECRET_NAME }}
\ No newline at end of file
+ # Logs in with your Azure credentials
+ - name: Azure login
+ uses: azure/login@v1.4.6
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+
+ # Retrieves your Azure Kubernetes Service cluster's kubeconfig file
+ - name: Get K8s context
+ uses: azure/aks-set-context@v3
+ with:
+ resource-group: ${{ env.RESOURCE_GROUP }}
+ cluster-name: ${{ env.CLUSTER_NAME }}
+
+ # Deploys application based on given manifest file
+ - name: Deploys application
+ uses: Azure/k8s-deploy@v4
+ with:
+ action: deploy
+ manifests: ${{ env.DEPLOYMENT_MANIFEST_PATH }}
+ images: |
+ ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
diff --git a/icons/astro.svg b/icons/astro.svg
new file mode 100644
index 0000000..ff9dd54
--- /dev/null
+++ b/icons/astro.svg
@@ -0,0 +1,20 @@
+
diff --git a/icons/checkmarx.svg b/icons/checkmarx.svg
index 6bf5ad3..7c5b4d9 100644
--- a/icons/checkmarx.svg
+++ b/icons/checkmarx.svg
@@ -1,14 +1,73 @@
-
-
-