Compare commits

..

9 Commits

Author SHA1 Message Date
Christopher Schleiden 6179f79b78 Remove properties.
Validate Data / sync (push) Has been cancelled
2020-05-26 13:31:30 -07:00
Cameron Booth 60749c6653 Merge pull request #518 from cdb/cdb/dont-fail-on-no-changes
Don't fail GHES workflow if nothing changed
2020-05-20 16:43:49 -07:00
Cameron Booth 9a0a11423d Name the workflow 2020-05-20 16:31:33 -07:00
Cameron Booth 74c1e87c6b Don’t fail if no changes 2020-05-20 16:31:20 -07:00
Cameron Booth 9ea914b370 Merge pull request #517 from cdb/cdb/validate-data
Workflow to validate starter-workflows data is setup correctly
2020-05-20 16:03:12 -07:00
Cameron Booth 1bb7228652 Report success as well for visibility 2020-05-20 13:28:55 -07:00
Cameron Booth 3dd92068cf Add missing icons 2020-05-20 13:28:44 -07:00
Cameron Booth a83abcc872 Script to validate the main parts of workflow data 2020-05-20 13:28:25 -07:00
Christopher Schleiden 70c22e93a3 Name GHES sync workflow 2020-05-20 11:39:30 -07:00
150 changed files with 1822 additions and 2582 deletions
+8 -2
View File
@@ -1,3 +1,5 @@
name: Sync workflows for GHES
on:
push:
branches:
@@ -22,5 +24,9 @@ jobs:
working-directory: ./script/sync-ghes
- run: |
git add -A
git commit -m "Updating GHES workflows"
- run: git push
if [ -z "$(git status --porcelain)" ]; then
echo "No changes to commit"
else
git commit -m "Updating GHES workflows"
fi
- run: git push
+21
View File
@@ -0,0 +1,21 @@
name: Validate Data
on:
push:
pull_request:
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12"
- name: Validate workflows
run: |
npm ci
npx ts-node-script ./index.ts
working-directory: ./script/validate-data
+19
View File
@@ -0,0 +1,19 @@
---
name: Greetings
description: Greets users who are first time contributors to the repo
categories: [Automation, SDLC]
iconName: octicon smiley
---
name: Greetings
on: [pull_request, issues]
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: 'Message that will be displayed on users'' first issue'
pr-message: 'Message that will be displayed on users'' first pr'
+25
View File
@@ -0,0 +1,25 @@
---
name: Labeler
description: Labels pull requests based on the files changed
categories: [Automation, SDLC]
iconName: octicon tag
---
# This workflow will triage pull requests and apply a label based on the
# paths that are modified in the pull request.
#
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler/blob/master/README.md
name: Labeler
on: [pull_request]
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
-32
View File
@@ -1,32 +0,0 @@
# This is a basic workflow that is manually triggered
name: Manual workflow
# Controls when the action will run. Workflow runs when manually triggered using the UI
# or API.
on:
workflow_dispatch:
# Inputs the workflow accepts.
inputs:
name:
# Friendly description to be shown in the UI instead of 'name'
description: 'Person to greet'
# Default value if no value is explicitly provided
default: 'World'
# Input has to be provided for the workflow to run
required: true
# The data type of the input
type: string
# 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 "greet"
greet:
# 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:
# Runs a single command using the runners shell
- name: Send greeting
run: echo "Hello ${{ inputs.name }}"
@@ -1,6 +0,0 @@
{
"name": "Manual workflow",
"description": "Simple workflow that is manually triggered.",
"iconName": "octicon person",
"categories": ["Automation"]
}
@@ -1,6 +0,0 @@
{
"name": "Stale",
"description": "Checks for stale issues and pull requests",
"iconName": "octicon clock",
"categories": ["Automation", "SDLC"]
}
+8 -10
View File
@@ -1,24 +1,22 @@
# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
#
# You can adjust the behavior by modifying this file.
# For more information, see:
# https://github.com/actions/stale
---
name: Stale
description: Checks for stale issues and pull requests
categories: [Automation, SDLC]
iconName: octicon clock
---
name: Mark stale issues and pull requests
on:
schedule:
- cron: $cron-daily
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5
- uses: actions/stale@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'Stale issue message'
-24
View File
@@ -1,24 +0,0 @@
name: Ada (GNAT)
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up GNAT toolchain
run: >
sudo apt-get update &&
sudo apt-get install gnat gprbuild
- name: Build
run: gprbuild -j0 -p
+12 -11
View File
@@ -1,10 +1,16 @@
---
name: Android CI
description: Build an Android project with Gradle.
categories: [Java, Mobile]
iconName: android
---
name: Android CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -12,15 +18,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 11
uses: actions/setup-java@v3
- uses: actions/checkout@v2
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: '11'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
java-version: 1.8
- name: Build with Gradle
run: ./gradlew build
+13 -8
View File
@@ -1,13 +1,19 @@
---
name: Java with Ant
description: Build and test a Java project with Apache Ant.
categories: [Ant, Java]
iconName: ant
---
# This workflow will build a Java project with Ant
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-ant
name: Java CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -15,11 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: '11'
distribution: 'temurin'
java-version: 1.8
- name: Build with Ant
run: ant -noinput -buildfile build.xml
+86
View File
@@ -0,0 +1,86 @@
---
name: Deploy to Amazon ECS
description: Deploy a container to an Amazon ECS service powered by AWS Fargate or Amazon EC2.
categories: []
iconName: aws
---
# This workflow will build and push a new container image to Amazon ECR,
# and then will deploy a new task definition to Amazon ECS, when a release is created
#
# To use this workflow, you will need to complete the following set-up steps:
#
# 1. Create an ECR repository to store your images.
# For example: `aws ecr create-repository --repository-name my-ecr-repo --region us-east-2`.
# Replace the value of `ECR_REPOSITORY` in the workflow below with your repository's name.
# Replace the value of `aws-region` in the workflow below with your repository's region.
#
# 2. Create an ECS task definition, an ECS cluster, and an ECS service.
# For example, follow the Getting Started guide on the ECS console:
# https://us-east-2.console.aws.amazon.com/ecs/home?region=us-east-2#/firstRun
# Replace the values for `service` and `cluster` in the workflow below with your service and cluster names.
#
# 3. Store your ECS task definition as a JSON file in your repository.
# The format should follow the output of `aws ecs register-task-definition --generate-cli-skeleton`.
# Replace the value of `task-definition` in the workflow below with your JSON file's name.
# Replace the value of `container-name` in the workflow below with the name of the container
# in the `containerDefinitions` section of the task definition.
#
# 4. Store an IAM user access key in GitHub Actions secrets named `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
# See the documentation for each action used below for the recommended IAM policies for this IAM user,
# and best practices on handling the access key credentials.
on:
release:
types: [created]
name: Deploy to Amazon ECS
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Build, tag, and push image to Amazon ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: my-ecr-repo
IMAGE_TAG: ${{ github.sha }}
run: |
# Build a docker container and
# push it to ECR so that it can
# be deployed to ECS.
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: task-definition.json
container-name: sample-app
image: ${{ steps.build-image.outputs.image }}
- name: Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: sample-app-service
cluster: default
wait-for-service-stability: true
+52
View File
@@ -0,0 +1,52 @@
---
name: Deploy Node.js to Azure Web App
description: Build a Node.js project and deploy it to an Azure Web App.
categories: []
iconName: azure
---
# This workflow will build and push a node.js application to an Azure Web App when a release is created.
#
# This workflow assumes you have already created the target Azure App Service web app.
# For instructions see https://docs.microsoft.com/azure/app-service/app-service-plan-manage#create-an-app-service-plan
#
# To configure this workflow:
#
# 1. Set up a secret in your repository named AZURE_WEBAPP_PUBLISH_PROFILE with the value of your Azure publish profile.
# For instructions on obtaining the publish profile see: https://docs.microsoft.com/azure/app-service/deploy-github-actions#configure-the-github-secret
#
# 2. Change the values for the AZURE_WEBAPP_NAME, AZURE_WEBAPP_PACKAGE_PATH and NODE_VERSION environment variables (below).
#
# For more information on GitHub Actions for Azure, refer to https://github.com/Azure/Actions
# For more samples to get started with GitHub Action workflows to deploy to Azure, refer to https://github.com/Azure/actions-workflow-samples
on:
release:
types: [created]
env:
AZURE_WEBAPP_NAME: your-app-name # set this to your application's name
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
NODE_VERSION: '10.x' # set this to the node version to use
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE_VERSION }}
- name: npm install, build, and test
run: |
# Build and test the project, then
# deploy to Azure Web App.
npm install
npm run build --if-present
npm run test --if-present
- name: 'Deploy to Azure WebApp'
uses: azure/webapps-deploy@v2
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
+20 -17
View File
@@ -1,17 +1,20 @@
---
name: Simple workflow
description: Start with a file with the minimum necessary structure.
categories: []
iconName: blank
---
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
# Triggers the workflow on push or pull request events but only for the $default-branch branch
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
@@ -22,15 +25,15 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Run a one-line script
run: echo Hello, world!
# Runs a single command using the runners shell
- name: Run a one-line script
run: echo Hello, world!
# Runs a set of commands using the runners shell
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
# Runs a set of commands using the runners shell
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
+9 -3
View File
@@ -1,10 +1,16 @@
---
name: C/C++ with Make
description: Build and test a C/C++ project using Make.
categories: [C, C++]
iconName: c-cpp
---
name: C/C++ CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -12,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
+9 -3
View File
@@ -1,10 +1,16 @@
---
name: Clojure
description: Build and test a Clojure project with Leiningen.
categories: [Clojure, Java]
iconName: clojure
---
name: Clojure CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -12,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Install dependencies
run: lein deps
- name: Run tests
-75
View File
@@ -1,75 +0,0 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: CMake on multiple platforms
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false
# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest, windows-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl
steps:
- uses: actions/checkout@v3
- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-S ${{ github.workspace }}
- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest --build-config ${{ matrix.build_type }}
-39
View File
@@ -1,39 +0,0 @@
# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: CMake on a single platform
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
+9 -3
View File
@@ -1,10 +1,16 @@
---
name: Crystal
description: Build and test a Crystal project.
categories: [Crystal]
iconName: crystal
---
name: Crystal CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -15,7 +21,7 @@ jobs:
image: crystallang/crystal
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Install dependencies
run: shards install
- name: Run tests
+28
View File
@@ -0,0 +1,28 @@
---
name: Dart
description: Build and test a Dart project with Pub.
categories: [Dart]
iconName: dart
---
name: Dart CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
container:
image: google/dart:latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: pub get
- name: Run tests
run: pub run test
+11 -5
View File
@@ -1,10 +1,16 @@
---
name: Django
description: Build and Test a Django Project
categories: [Python, Django]
iconName: django
---
name: Django CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -13,12 +19,12 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9]
python-version: [3.6, 3.7, 3.8]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
+9 -3
View File
@@ -1,10 +1,16 @@
---
name: Docker image
description: Build a Docker image to deploy, run, or push to a registry.
categories: [Dockerfile]
iconName: docker
---
name: Docker Image CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
@@ -13,6 +19,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
+82
View File
@@ -0,0 +1,82 @@
---
name: Publish Docker Container
description: Build, test and push Docker image to GitHub Packages.
categories: [Dockerfile]
iconName: docker
---
name: Docker
on:
push:
# Publish `master` as Docker `latest` image.
branches:
- master
# Publish `v1.2.3` tags as releases.
tags:
- v*
# Run tests for any PRs.
pull_request:
env:
# TODO: Change variable to your image's name.
IMAGE_NAME: image
jobs:
# Run tests.
# See also https://docs.docker.com/docker-hub/builds/automated-testing/
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
if [ -f docker-compose.test.yml ]; then
docker-compose --file docker-compose.test.yml build
docker-compose --file docker-compose.test.yml run sut
else
docker build . --file Dockerfile
fi
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
push:
# Ensure test job passes before pushing image.
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
- uses: actions/checkout@v2
- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME
- name: Log into registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u ${{ github.actor }} --password-stdin
- name: Push image
run: |
IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
+31
View File
@@ -0,0 +1,31 @@
---
name: .NET Core
description: Build and test a .NET Core or ASP.NET Core project.
categories: [C#, F#, Visual Basic, ASP, ASP.NET, .NET]
iconName: dotnetcore
---
name: .NET Core
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
-28
View File
@@ -1,28 +0,0 @@
# 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:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
+30
View File
@@ -0,0 +1,30 @@
---
name: Elixir
description: Build and test an Elixir project with Mix.
categories: [Elixir, Erlang]
iconName: elixir
---
name: Elixir CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup elixir
uses: actions/setup-elixir@v1
with:
elixir-version: 1.9.4 # Define the elixir version [required]
otp-version: 22.2 # Define the OTP version [required]
- name: Install Dependencies
run: mix deps.get
- name: Run Tests
run: mix test
+9 -6
View File
@@ -1,13 +1,16 @@
---
name: Erlang
description: Build and test an Erlang project with rebar.
categories: [Erlang]
iconName: erlang
---
name: Erlang CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
permissions:
contents: read
branches: [ master ]
jobs:
@@ -19,7 +22,7 @@ jobs:
image: erlang:22.0.7
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Compile
run: rebar3 compile
- name: Run tests
+48
View File
@@ -0,0 +1,48 @@
---
name: Ruby Gem
description: Pushes a Ruby Gem to RubyGems and GitHub Package Registry.
categories: [Ruby, SDLC]
iconName: ruby-gems
---
name: Ruby Gem
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
name: Build + Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6
uses: actions/setup-ruby@v1
with:
version: 2.6.x
- name: Publish to GPR
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:github: Bearer ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
env:
GEM_HOST_API_KEY: ${{secrets.GPR_AUTH_TOKEN}}
OWNER: username
- name: Publish to RubyGems
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push *.gem
env:
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
@@ -1,66 +0,0 @@
# 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 lets you generate SLSA provenance file for your project.
# The generation satisfies level 3 for the provenance requirements - see https://slsa.dev/spec/v0.1/requirements
# The project is an initiative of the OpenSSF (openssf.org) and is developed at
# https://github.com/slsa-framework/slsa-github-generator.
# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier.
# For more information about SLSA and how it improves the supply-chain, visit slsa.dev.
name: SLSA generic generator
on:
workflow_dispatch:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
outputs:
digests: ${{ steps.hash.outputs.digests }}
steps:
- uses: actions/checkout@v3
# ========================================================
#
# Step 1: Build your artifacts.
#
# ========================================================
- name: Build artifacts
run: |
# These are some amazing artifacts.
echo "artifact1" > artifact1
echo "artifact2" > artifact2
# ========================================================
#
# Step 2: Add a step to generate the provenance subjects
# as shown below. Update the sha256 sum arguments
# to include all binaries that you generate
# provenance for.
#
# ========================================================
- name: Generate subject for provenance
id: hash
run: |
set -euo pipefail
# List the artifacts the provenance will refer to.
files=$(ls artifact*)
# Generate the subjects (base64 encoded).
echo "hashes=$(sha256sum $files | base64 -w0)" >> "${GITHUB_OUTPUT}"
provenance:
needs: [build]
permissions:
actions: read # To read the workflow path.
id-token: write # To sign the provenance.
contents: write # To add assets to a release.
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.4.0
with:
base64-subjects: "${{ needs.build.outputs.digests }}"
upload-assets: true # Optional: Upload to a new release
-38
View File
@@ -1,38 +0,0 @@
# 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 lets you compile your Go project using a SLSA3 compliant builder.
# This workflow will generate a so-called "provenance" file describing the steps
# that were performed to generate the final binary.
# The project is an initiative of the OpenSSF (openssf.org) and is developed at
# https://github.com/slsa-framework/slsa-github-generator.
# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier.
# For more information about SLSA and how it improves the supply-chain, visit slsa.dev.
name: SLSA Go releaser
on:
workflow_dispatch:
release:
types: [created]
permissions: read-all
jobs:
# ========================================================================================================================================
# Prerequesite: Create a .slsa-goreleaser.yml in the root directory of your project.
# See format in https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/go/README.md#configuration-file
#=========================================================================================================================================
build:
permissions:
id-token: write # To sign.
contents: write # To upload release assets.
actions: read # To read workflow path.
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.4.0
with:
go-version: 1.17
# =============================================================================================================
# Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects
# =============================================================================================================
+26 -11
View File
@@ -1,28 +1,43 @@
# 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
description: Build a Go project.
categories: [Go]
iconName: go
---
name: Go
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: '1.20'
go-version: ^1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Get dependencies
run: |
go get -v -t -d ./...
if [ -f Gopkg.toml ]; then
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure
fi
- name: Build
run: go build -v ./...
run: go build -v .
- name: Test
run: go test -v ./...
run: go test -v .
+81
View File
@@ -0,0 +1,81 @@
---
name: Build and Deploy to GKE
description: Build a docker container, publish it to Google Container Registry, and deploy to GKE.
categories: []
iconName: googlegke
---
# This workflow will build a docker container, publish it to Google Container Registry, and deploy it to GKE when a release is created
#
# To configure this workflow:
#
# 1. Ensure that your repository contains the necessary configuration for your Google Kubernetes Engine cluster, including deployment.yml, kustomization.yml, service.yml, etc.
#
# 2. Set up secrets in your workspace: GKE_PROJECT with the name of the project, GKE_EMAIL with the service account email, GKE_KEY with the Base64 encoded JSON service account key (https://github.com/GoogleCloudPlatform/github-actions/tree/docs/service-account-key/setup-gcloud#inputs).
#
# 3. Change the values for the GKE_ZONE, GKE_CLUSTER, IMAGE, REGISTRY_HOSTNAME and DEPLOYMENT_NAME environment variables (below).
name: Build and Deploy to GKE
on:
release:
types: [created]
# Environment variables available to all jobs and steps in this workflow
env:
GKE_PROJECT: ${{ secrets.GKE_PROJECT }}
GKE_EMAIL: ${{ secrets.GKE_EMAIL }}
GITHUB_SHA: ${{ github.sha }}
GKE_ZONE: us-west1-a
GKE_CLUSTER: example-gke-cluster
IMAGE: gke-test
REGISTRY_HOSTNAME: gcr.io
DEPLOYMENT_NAME: gke-test
jobs:
setup-build-publish-deploy:
name: Setup, Build, Publish, and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Setup gcloud CLI
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: '270.0.0'
service_account_email: ${{ secrets.GKE_EMAIL }}
service_account_key: ${{ secrets.GKE_KEY }}
# Configure docker to use the gcloud command-line tool as a credential helper
- run: |
# Set up docker to authenticate
# via gcloud command-line tool.
gcloud auth configure-docker
# Build the Docker image
- name: Build
run: |
docker build -t "$REGISTRY_HOSTNAME"/"$GKE_PROJECT"/"$IMAGE":"$GITHUB_SHA" \
--build-arg GITHUB_SHA="$GITHUB_SHA" \
--build-arg GITHUB_REF="$GITHUB_REF" .
# Push the Docker image to Google Container Registry
- name: Publish
run: |
docker push $REGISTRY_HOSTNAME/$GKE_PROJECT/$IMAGE:$GITHUB_SHA
# Set up kustomize
- name: Set up Kustomize
run: |
curl -o kustomize --location https://github.com/kubernetes-sigs/kustomize/releases/download/v3.1.0/kustomize_3.1.0_linux_amd64
chmod u+x ./kustomize
# Deploy the Docker image to the GKE cluster
- name: Deploy
run: |
gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT
./kustomize edit set image $REGISTRY_HOSTNAME/$GKE_PROJECT/$IMAGE:${GITHUB_SHA}
./kustomize build . | kubectl apply -f -
kubectl rollout status deployment/$DEPLOYMENT_NAME
kubectl get services -o wide
+39
View File
@@ -0,0 +1,39 @@
---
name: Publish Java Package with Gradle
description: Build a Java Package using Gradle and publish to GitHub Packages.
categories: [Java, Gradle]
iconName: gradle
---
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java#publishing-using-gradle
name: Gradle Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Build with Gradle
run: gradle build
# The USERNAME and TOKEN need to correspond to the credentials environment variables used in
# the publishing section of your build.gradle
- name: Publish to GitHub Packages
run: gradle publish
env:
USERNAME: ${{ github.actor }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
+32
View File
@@ -0,0 +1,32 @@
---
name: Java with Gradle
description: Build and test a Java project using a Gradle wrapper script.
categories: [Java, Gradle]
iconName: gradle
---
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Java CI with Gradle
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
+46
View File
@@ -0,0 +1,46 @@
---
name: Haskell
description: Build and test a Haskell project with Cabal.
categories: [Haskell]
iconName: haskell
---
name: Haskell CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-haskell@v1
with:
ghc-version: '8.8.2'
cabal-version: '3.0'
- name: Cache
uses: actions/cache@v1
env:
cache-name: cache-cabal
with:
path: ~/.cabal
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: |
cabal update
cabal build --only-dependencies --enable-tests --enable-benchmarks
- name: Build
run: cabal build --enable-tests --enable-benchmarks all
- name: Run tests
run: cabal test all
+80
View File
@@ -0,0 +1,80 @@
---
name: Build and Deploy to IKS
description: Build a docker container, publish it to IBM Container Registry, and deploy to IKS.
categories: []
iconName: ibm
---
# This workflow will build a docker container, publish it to IBM Container Registry, and deploy it to IKS when a release is created
#
# To configure this workflow:
#
# 1. Ensure that your repository contains a Dockerfile
# 2. Setup secrets in your repository by going to settings: Create ICR_NAMESPACE and IBM_CLOUD_API_KEY
# 3. Change the values for the IBM_CLOUD_REGION, REGISTRY_HOSTNAME, IMAGE_NAME, IKS_CLUSTER, DEPLOYMENT_NAME, and PORT
name: Build and Deploy to IKS
on:
release:
types: [created]
# Environment variables available to all jobs and steps in this workflow
env:
GITHUB_SHA: ${{ github.sha }}
IBM_CLOUD_API_KEY: ${{ secrets.IBM_CLOUD_API_KEY }}
IBM_CLOUD_REGION: us-south
ICR_NAMESPACE: ${{ secrets.ICR_NAMESPACE }}
REGISTRY_HOSTNAME: us.icr.io
IMAGE_NAME: iks-test
IKS_CLUSTER: example-iks-cluster-name-or-id
DEPLOYMENT_NAME: iks-test
PORT: 5001
jobs:
setup-build-publish-deploy:
name: Setup, Build, Publish, and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Download and Install IBM Cloud CLI
- name: Install IBM Cloud CLI
run: |
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
ibmcloud --version
ibmcloud config --check-version=false
ibmcloud plugin install -f kubernetes-service
ibmcloud plugin install -f container-registry
# Authenticate with IBM Cloud CLI
- name: Authenticate with IBM Cloud CLI
run: |
ibmcloud login --apikey "${IBM_CLOUD_API_KEY}" -r "${IBM_CLOUD_REGION}" -g default
ibmcloud cr region-set "${IBM_CLOUD_REGION}"
ibmcloud cr login
# Build the Docker image
- name: Build with Docker
run: |
docker build -t "$REGISTRY_HOSTNAME"/"$ICR_NAMESPACE"/"$IMAGE_NAME":"$GITHUB_SHA" \
--build-arg GITHUB_SHA="$GITHUB_SHA" \
--build-arg GITHUB_REF="$GITHUB_REF" .
# Push the image to IBM Container Registry
- name: Push the image to ICR
run: |
docker push $REGISTRY_HOSTNAME/$ICR_NAMESPACE/$IMAGE_NAME:$GITHUB_SHA
# Deploy the Docker image to the IKS cluster
- name: Deploy to IKS
run: |
ibmcloud ks cluster config --cluster $IKS_CLUSTER
kubectl config current-context
kubectl create deployment $DEPLOYMENT_NAME --image=$REGISTRY_HOSTNAME/$ICR_NAMESPACE/$IMAGE_NAME:$GITHUB_SHA --dry-run -o yaml > deployment.yaml
kubectl apply -f deployment.yaml
kubectl rollout status deployment/$DEPLOYMENT_NAME
kubectl create service loadbalancer $DEPLOYMENT_NAME --tcp=80:$PORT --dry-run -o yaml > service.yaml
kubectl apply -f service.yaml
kubectl get services -o wide
-44
View File
@@ -1,44 +0,0 @@
name: iOS starter workflow
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
name: Build and Test default scheme using any available iPhone simulator
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set Default Scheme
run: |
scheme_list=$(xcodebuild -list -json | tr -d "\n")
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
echo $default | cat >default
echo Using default scheme: $default
- name: Build
env:
scheme: ${{ 'default' }}
platform: ${{ 'iOS Simulator' }}
run: |
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
if [ $scheme = default ]; then scheme=$(cat default); fi
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
xcodebuild build-for-testing -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
- name: Test
env:
scheme: ${{ 'default' }}
platform: ${{ 'iOS Simulator' }}
run: |
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
if [ $scheme = default ]; then scheme=$(cat default); fi
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
xcodebuild test-without-building -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
-20
View File
@@ -1,20 +0,0 @@
name: Jekyll site CI
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build the site in the jekyll/builder container
run: |
docker run \
-v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \
jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && jekyll build --future"
+26
View File
@@ -0,0 +1,26 @@
---
name: Jekyll
description: Package a Jekyll site using the jekyll/builder Docker image.
categories: [HTML]
iconName: jekyll
---
name: Jekyll site CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build the site in the jekyll/builder container
run: |
docker run \
-v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \
jekyll/builder:latest /bin/bash -c "chmod 777 /srv/jekyll && jekyll build --future"
+38
View File
@@ -0,0 +1,38 @@
---
name: Laravel
description: Test a Laravel project.
categories: [PHP, Laravel]
iconName: php
---
name: Laravel
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
laravel-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Create Database
run: |
mkdir -p database
touch database/database.sqlite
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
run: vendor/bin/phpunit
-27
View File
@@ -1,27 +0,0 @@
name: Makefile CI
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: configure
run: ./configure
- name: Install dependencies
run: make
- name: Run check
run: make check
- name: Run distcheck
run: make distcheck
+12 -10
View File
@@ -1,5 +1,11 @@
---
name: Publish Java Package with Maven
description: Build a Java Package using Maven and publish to GitHub Packages.
categories: [Java, Maven]
iconName: maven
---
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
# For more information see: https://github.com/actions/setup-java#apache-maven-with-a-settings-path
name: Maven Package
@@ -11,17 +17,13 @@ jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: '11'
distribution: 'temurin'
java-version: 1.8
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
@@ -31,4 +33,4 @@ jobs:
- name: Publish to GitHub Packages Apache Maven
run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
env:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_TOKEN: ${{ github.token }}
+30
View File
@@ -0,0 +1,30 @@
---
name: Java with Maven
description: Build and test a Java project with Apache Maven.
categories: [Java, Maven]
iconName: maven
---
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
+13 -9
View File
@@ -1,13 +1,19 @@
# 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://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
---
name: Node.js
description: Build and test a Node.js project with npm.
categories: [JavaScript, Node, Npm]
iconName: nodejs
---
# This workflow will do a clean install of node dependencies, 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
name: Node.js CI
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -16,16 +22,14 @@ jobs:
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [10.x, 12.x]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
-28
View File
@@ -1,28 +0,0 @@
name: NodeJS with Grunt
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Build
run: |
npm install
grunt
-28
View File
@@ -1,28 +0,0 @@
name: NodeJS with Gulp
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Build
run: |
npm install
gulp
-36
View File
@@ -1,36 +0,0 @@
# 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://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm ci
- run: npm test
publish-gpr:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: $registry-url(npm)
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
+27 -7
View File
@@ -1,5 +1,11 @@
---
name: Publish Node.js Package
description: Publishes a Node.js package to npm and GitHub Packages.
categories: [JavaScript, SDLC]
iconName: node-package-transparent
---
# 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://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
name: Node.js Package
@@ -11,10 +17,10 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 16
node-version: 12
- run: npm ci
- run: npm test
@@ -22,12 +28,26 @@ jobs:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 16
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
publish-gpr:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://npm.pkg.github.com/
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
-30
View File
@@ -1,30 +0,0 @@
name: Xcode - Build and Analyze
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
name: Build and analyse default scheme using xcodebuild command
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set Default Scheme
run: |
scheme_list=$(xcodebuild -list -json | tr -d "\n")
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
echo $default | cat >default
echo Using default scheme: $default
- name: Build
env:
scheme: ${{ 'default' }}
run: |
if [ $scheme = default ]; then scheme=$(cat default); fi
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
xcodebuild clean build analyze -scheme "$scheme" -"$filetype_parameter" "$file_to_build" | xcpretty && exit ${PIPESTATUS[0]}
+10 -16
View File
@@ -1,13 +1,16 @@
---
name: PHP
description: Build and test a PHP application using Composer
categories: [PHP, Composer]
iconName: php
---
name: PHP Composer
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
permissions:
contents: read
branches: [ master ]
jobs:
build:
@@ -15,19 +18,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
run: composer validate
- name: Install dependencies
run: composer install --prefer-dist --no-progress
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Ada",
"description": "Build Ada project with GPRbuild.",
"iconName": "ada",
"categories": ["Continuous integration", "Ada"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Android CI",
"description": "Build an Android project with Gradle.",
"iconName": "android",
"categories": ["Continuous integration", "Java", "Mobile"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Java with Ant",
"description": "Build and test a Java project with Apache Ant.",
"iconName": "ant",
"categories": ["Continuous integration", "Ant", "Java"]
}
-7
View File
@@ -1,7 +0,0 @@
{
"name": "Simple workflow",
"description": "Start with a file with the minimum necessary structure.",
"creator": "GitHub",
"iconName": "blank",
"categories": null
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "C/C++ with Make",
"description": "Build and test a C/C++ project using Make.",
"iconName": "c-cpp",
"categories": ["Continuous integration", "C", "C++"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Clojure",
"description": "Build and test a Clojure project with Leiningen.",
"iconName": "clojure",
"categories": ["Continuous integration", "Clojure", "Java"]
}
@@ -1,6 +0,0 @@
{
"name": "CMake based, multi-platform projects",
"description": "Build and test a CMake based project on multiple platforms.",
"iconName": "cmake",
"categories": ["Continuous integration", "C", "C++"]
}
@@ -1,6 +0,0 @@
{
"name": "CMake based, single-platform projects",
"description": "Build and test a CMake based project on a single-platform.",
"iconName": "cmake",
"categories": ["Continuous integration", "C", "C++"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Crystal",
"description": "Build and test a Crystal project.",
"iconName": "crystal",
"categories": ["Continuous integration", "Crystal"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Django",
"description": "Build and Test a Django Project",
"iconName": "django",
"categories": ["Continuous integration", "Python", "Django"]
}
@@ -1,6 +0,0 @@
{
"name": "Docker image",
"description": "Build a Docker image to deploy, run, or push to a registry.",
"iconName": "docker",
"categories": ["Continuous integration", "Dockerfile"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": ".NET",
"description": "Build and test a .NET or ASP.NET Core project.",
"iconName": "dotnet",
"categories": ["Continuous integration", "C#", "F#", "Visual Basic", "ASP", "ASP.NET", ".NET", "AspNetCore", "DotNetConsole"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Erlang",
"description": "Build and test an Erlang project with rebar.",
"iconName": "erlang",
"categories": ["Continuous integration", "Erlang"]
}
@@ -1,7 +0,0 @@
{
"name": "SLSA Generic generator",
"creator": "Open Source Security Foundation (OpenSSF)",
"description": "Generate SLSA3 provenance for your existing release workflows",
"iconName": "generator-generic-ossf-slsa3-publish",
"categories": ["Continuous integration", "Go", "Elixir", "Erlang", "PHP", "Haskell", "Rust", "Java", "Scala", "Gradle", "Maven", "Python", "C", "C++", "TypeScript", "JavaScript", "npm", "Ruby", "HTML", "Composer", "Makefile", "Ada"]
}
@@ -1,7 +0,0 @@
{
"name": "SLSA Go releaser",
"creator": "Open Source Security Foundation (OpenSSF)",
"description": "Compile your Go project using a SLSA3 compliant builder",
"iconName": "go-ossf-slsa3-publish",
"categories": ["Continuous integration", "Go"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Go",
"description": "Build a Go project.",
"iconName": "go",
"categories": ["Continuous integration", "Go"]
}
-10
View File
@@ -1,10 +0,0 @@
{
"name": "iOS",
"description": "Build and test an iOS application using xcodebuild and any available iPhone simulator.",
"iconName": "xcode",
"categories": [
"Continuous integration",
"iOS",
"Xcode"
]
}
@@ -1,6 +0,0 @@
{
"name": "Jekyll using Docker image",
"description": "Package a Jekyll site using the jekyll/builder Docker image.",
"iconName": "jekyll",
"categories": ["Continuous integration", "HTML"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Build projects with Make",
"description": "Build and test a project using Make.",
"iconName": "makefile",
"categories": ["Continuous integration", "Makefile"]
}
@@ -1,6 +0,0 @@
{
"name": "Publish Java Package with Maven",
"description": "Build a Java Package using Maven and publish to GitHub Packages.",
"iconName": "maven",
"categories": ["Continuous integration", "Java", "Maven", "Spring", "JSF"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Node.js",
"description": "Build and test a Node.js project with npm.",
"iconName": "nodejs",
"categories": ["Continuous integration", "JavaScript", "npm", "React", "Angular", "Vue"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Grunt",
"description": "Build a NodeJS project with npm and grunt.",
"iconName": "grunt",
"categories": ["Continuous integration", "JavaScript", "TypeScript", "npm", "Grunt"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Gulp",
"description": "Build a NodeJS project with npm and gulp.",
"iconName": "gulp",
"categories": ["Continuous integration", "JavaScript", "TypeScript", "npm", "Gulp"]
}
@@ -1,6 +0,0 @@
{
"name": "Publish Node.js Package to GitHub Packages",
"description": "Publishes a Node.js package to GitHub Packages.",
"iconName": "node-package-transparent",
"categories": ["Continuous integration", "JavaScript", "npm"]
}
@@ -1,6 +0,0 @@
{
"name": "Publish Node.js Package",
"description": "Publishes a Node.js package to npm.",
"iconName": "node-package-transparent",
"categories": ["Continuous integration", "JavaScript", "npm"]
}
@@ -1,6 +0,0 @@
{
"name": "Xcode - Build and Analyze",
"description": "Build Xcode project using xcodebuild",
"iconName": "xcode",
"categories": ["Continuous integration", "Xcode", "Objective-C"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "PHP",
"description": "Build and test a PHP application using Composer",
"iconName": "php",
"categories": ["Continuous integration", "PHP", "Composer"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Pylint",
"description": "Lint a Python application with pylint.",
"iconName": "python",
"categories": ["Continuous integration", "Python", "Bottle", "Flask"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Python application",
"description": "Create and test a Python application.",
"iconName": "python",
"categories": ["Continuous integration", "Python", "Bottle", "Flask"]
}
@@ -1,6 +0,0 @@
{
"name": "Python Package using Anaconda",
"description": "Create and test a Python package on multiple Python versions using Anaconda for package management.",
"iconName": "python",
"categories": ["Continuous integration", "Python"]
}
@@ -1,6 +0,0 @@
{
"name": "Python package",
"description": "Create and test a Python package on multiple Python versions.",
"iconName": "python",
"categories": ["Continuous integration", "Python", "Bottle", "Flask"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Rust",
"description": "Build and test a Rust project with Cargo.",
"iconName": "rust",
"categories": ["Continuous integration", "Rust"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Swift",
"description": "Build and test a Swift Package.",
"iconName": "swift",
"categories": ["Continuous integration", "Swift"]
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Webpack",
"description": "Build a NodeJS project with npm and webpack.",
"iconName": "webpack",
"categories": ["Continuous integration", "JavaScript", "TypeScript", "npm", "Webpack"]
}
-23
View File
@@ -1,23 +0,0 @@
name: Pylint
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Analysing the code with pylint
run: |
pylint $(git ls-files '*.py')
+13 -10
View File
@@ -1,16 +1,19 @@
---
name: Python application
description: Create and test a Python application.
categories: [Python]
iconName: python
---
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Python application
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
permissions:
contents: read
branches: [ master ]
jobs:
build:
@@ -18,11 +21,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: "3.10"
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
-34
View File
@@ -1,34 +0,0 @@
name: Python Package using Conda
on: [push]
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
max-parallel: 5
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: '3.10'
- name: Add conda to system path
run: |
# $CONDA is an environment variable pointing to the root of the miniconda directory
echo $CONDA/bin >> $GITHUB_PATH
- name: Install dependencies
run: |
conda env update --file environment.yml --name base
- name: Lint with flake8
run: |
conda install flake8
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
conda install pytest
pytest
+13 -8
View File
@@ -1,33 +1,38 @@
---
name: Python package
description: Create and test a Python package on multiple Python versions.
categories: [Python]
iconName: python
---
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Python package
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
python-version: [3.5, 3.6, 3.7, 3.8]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
run: |
+37
View File
@@ -0,0 +1,37 @@
---
name: Publish Python Package
description: Publish a Python Package to PyPI on release.
categories: [Python]
iconName: python
---
# This workflows 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
name: Upload Python Package
on:
release:
types: [created]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
+39
View File
@@ -0,0 +1,39 @@
---
name: Ruby
description: Build and test a Ruby project with Rake.
categories: [Ruby]
iconName: ruby
---
# 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 will download a prebuilt Ruby version, install dependencies and run tests with Rake
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
name: Ruby
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
# change this to (see https://github.com/ruby/setup-ruby#versioning):
# uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
with:
ruby-version: 2.6
- name: Install dependencies
run: bundle install
- name: Run tests
run: bundle exec rake
+9 -6
View File
@@ -1,13 +1,16 @@
---
name: Rust
description: Build and test a Rust project with Cargo.
categories: [Rust]
iconName: rust
---
name: Rust
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
env:
CARGO_TERM_COLOR: always
branches: [ master ]
jobs:
build:
@@ -15,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Run tests
+27
View File
@@ -0,0 +1,27 @@
---
name: Scala
description: Build and test a Scala project with SBT.
categories: [Scala, Java]
iconName: scala
---
name: Scala CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Run tests
run: sbt test
+9 -6
View File
@@ -1,13 +1,16 @@
# 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
description: Build and test a Swift Package.
categories: [Swift]
iconName: swift
---
name: Swift
on:
push:
branches: [ $default-branch ]
branches: [ master ]
pull_request:
branches: [ $default-branch ]
branches: [ master ]
jobs:
build:
@@ -15,7 +18,7 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Build
run: swift build -v
- name: Run tests
+81
View File
@@ -0,0 +1,81 @@
---
name: Tencent Kubernetes Engine
description: This workflow will build a docker container, publish and deploy it to Tencent Kubernetes Engine (TKE).
categories: []
iconName: tencentcloud
---
# This workflow will build a docker container, publish and deploy it to Tencent Kubernetes Engine (TKE).
#
# To configure this workflow:
#
# 1. Ensure that your repository contains the necessary configuration for your Tencent Kubernetes Engine cluster,
# including deployment.yml, kustomization.yml, service.yml, etc.
#
# 2. Set up secrets in your workspace:
# - TENCENT_CLOUD_SECRET_ID with Tencent Cloud secret id
# - TENCENT_CLOUD_SECRET_KEY with Tencent Cloud secret key
# - TENCENT_CLOUD_ACCOUNT_ID with Tencent Cloud account id
# - TKE_REGISTRY_PASSWORD with TKE registry password
#
# 3. Change the values for the TKE_IMAGE_URL, TKE_REGION, TKE_CLUSTER_ID and DEPLOYMENT_NAME environment variables (below).
name: Tencent Kubernetes Engine
on:
release:
types: [created]
# Environment variables available to all jobs and steps in this workflow
env:
TKE_IMAGE_URL: ccr.ccs.tencentyun.com/demo/mywebapp
TKE_REGION: ap-guangzhou
TKE_CLUSTER_ID: cls-mywebapp
DEPLOYMENT_NAME: tke-test
jobs:
setup-build-publish-deploy:
name: Setup, Build, Publish, and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Build
- name: Build Docker image
run: |
docker build -t ${TKE_IMAGE_URL}:${GITHUB_SHA} .
- name: Login TKE Registry
run: |
docker login -u ${{ secrets.TENCENT_CLOUD_ACCOUNT_ID }} -p ${{ secrets.TKE_REGISTRY_PASSWORD }} ${TKE_IMAGE_URL}
# Push the Docker image to TKE Registry
- name: Publish
run: |
docker push ${TKE_IMAGE_URL}:${GITHUB_SHA}
- name: Set up Kustomize
run: |
curl -o kustomize --location https://github.com/kubernetes-sigs/kustomize/releases/download/v3.1.0/kustomize_3.1.0_linux_amd64
chmod u+x ./kustomize
- name: Set up ~/.kube/config for connecting TKE cluster
uses: TencentCloud/tke-cluster-credential-action@v1
with:
secret_id: ${{ secrets.TENCENT_CLOUD_SECRET_ID }}
secret_key: ${{ secrets.TENCENT_CLOUD_SECRET_KEY }}
tke_region: ${{ env.TKE_REGION }}
cluster_id: ${{ env.TKE_CLUSTER_ID }}
- name: Switch to TKE context
run: |
kubectl config use-context ${TKE_CLUSTER_ID}-context-default
# Deploy the Docker image to the TKE cluster
- name: Deploy
run: |
./kustomize edit set image ${TKE_IMAGE_URL}:${GITHUB_SHA}
./kustomize build . | kubectl apply -f -
kubectl rollout status deployment/${DEPLOYMENT_NAME}
kubectl get services -o wide
+96
View File
@@ -0,0 +1,96 @@
---
name: Terraform
description: Set up Terraform CLI in your GitHub Actions workflow.
categories: []
iconName: terraform
---
# This workflow installs the latest version of Terraform CLI and configures the Terraform CLI configuration file
# with an API token for Terraform Cloud (app.terraform.io). On pull request events, this workflow will run
# `terraform init`, `terraform fmt`, and `terraform plan` (speculative plan via Terraform Cloud). On push events
# to the master branch, `terraform apply` will be executed.
#
# Documentation for `hashicorp/setup-terraform` is located here: https://github.com/hashicorp/setup-terraform
#
# To use this workflow, you will need to complete the following setup steps.
#
# 1. Create a `main.tf` file in the root of this repository with the `remote` backend and one or more resources defined.
# Example `main.tf`:
# # The configuration for the `remote` backend.
# terraform {
# backend "remote" {
# # The name of your Terraform Cloud organization.
# organization = "example-organization"
#
# # The name of the Terraform Cloud workspace to store Terraform state files in.
# workspaces {
# name = "example-workspace"
# }
# }
# }
#
# # An example resource that does nothing.
# resource "null_resource" "example" {
# triggers = {
# value = "A example resource that does nothing!"
# }
# }
#
#
# 2. Generate a Terraform Cloud user API token and store it as a GitHub secret (e.g. TF_API_TOKEN) on this repository.
# Documentation:
# - https://www.terraform.io/docs/cloud/users-teams-organizations/api-tokens.html
# - https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
#
# 3. Reference the GitHub secret in step using the `hashicorp/setup-terraform` GitHub Action.
# Example:
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v1
# with:
# cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
name: 'Terraform'
on:
push:
branches:
- master
pull_request:
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest
defaults:
run:
shell: bash
# Checkout the repository to the GitHub Actions runner
steps:
- name: Checkout
uses: actions/checkout@v2
# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init
# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check
# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan
# On push to master, build or change infrastructure according to Terraform configuration files
# Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks
- name: Terraform Apply
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
run: terraform apply -auto-approve
-28
View File
@@ -1,28 +0,0 @@
name: NodeJS with Webpack
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Build
run: |
npm install
npx webpack
+121
View File
@@ -0,0 +1,121 @@
---
name: WPF .NET Core
description: Build, test and publish a Wpf application built on .NET Core.
categories: [C#, Visual Basic, WPF, .NET]
iconName: dotnetcore
---
# 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 will build, test and package a WPF desktop application
# built on .NET Core.
# To learn how to migrate your existing WPF application to .NET Core,
# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
#
# To configure this workflow:
#
# 1. Configure environment variables
# GitHub sets default environment variables for every workflow run.
# Replace the variables relative to your project in the "env" section below.
#
# 2. Signing
# Generate a signing certificate in the Windows Application
# Packaging Project or add an existing signing certificate to the project.
# Next, use PowerShell to encode the .pfx file using Base64 encoding
# by running the following Powershell script to generate the output string:
#
# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
#
# Open the output file, SigningCertificate_Encoded.txt, and copy the
# string inside. Then, add the string to the repo as a GitHub secret
# and name it "Base64_Encoded_Pfx."
# For more information on how to configure your signing certificate for
# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
#
# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
# See "Build the Windows Application Packaging project" below to see how the secret is used.
#
# For more information on GitHub Actions, refer to https://github.com/features/actions
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
# refer to https://github.com/microsoft/github-actions-for-desktop-apps
name: WPF .NET Core
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
strategy:
matrix:
configuration: [Debug, Release]
runs-on: windows-latest # For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
env:
Solution_Name: your-solution-name # Replace with your solution name, i.e. MyWpfApp.sln.
Test_Project_Path: your-test-project-path # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj.
Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package.
Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj.
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@2008f912f56e61277eefaac6d1888b750582aa16
# Execute all unit tests in the solution
- name: Execute unit tests
run: dotnet test
# Restore the WPF application to populate the obj folder with RuntimeIdentifiers
- name: Restore the WPF application
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration
env:
Configuration: ${{ matrix.configuration }}
# Decode the base 64 encoded pfx and save the Signing_Certificate
- name: Decode the pfx
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}")
$certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
# Create the app package by building and packaging the Windows Application Packaging project
- name: Create the app package
run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }}
env:
Appx_Bundle: Always
Appx_Bundle_Platforms: x86|x64
Appx_Package_Build_Mode: StoreUpload
Configuration: ${{ matrix.configuration }}
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path $env:Wap_Project_Directory\$env:Signing_Certificate
# Upload the MSIX package: https://github.com/marketplace/actions/upload-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v1
with:
name: MSIX Package
path: ${{ env.Wap_Project_Directory }}\AppPackages
-90
View File
@@ -1,90 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ $default-branch, $protected-branches ]
pull_request:
branches: [ $default-branch, $protected-branches ]
schedule:
- cron: $cron-weekly
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
$codeql-languages-matrix
# CodeQL supports the following values keywords for 'language': $supported-codeql-languages
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
@@ -1,8 +0,0 @@
{
"name": "CodeQL Analysis",
"creator": "GitHub",
"enterprise": true,
"description": "Security analysis from GitHub for C, C++, C#, Go, Java, JavaScript, TypeScript, Python, Ruby, Kotlin and Swift developers.",
"iconName": "octicon mark-github",
"categories": ["Code Scanning", "C", "C++", "C#", "Go", "Java", "JavaScript", "TypeScript", "Python", "Ruby", "Kotlin", "Swift"]
}
-283
View File
@@ -1,283 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="2499.6855"
height="2499.6855"
viewBox="0 0 2499.6856 2499.6856"
xml:space="preserve"
id="svg900"
sodipodi:docname="ada.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata906"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs904" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1639"
inkscape:window-height="1026"
id="namedview902"
showgrid="false"
fit-margin-top="10"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="10"
inkscape:zoom="0.31791045"
inkscape:cx="1244.8642"
inkscape:cy="1148.4665"
inkscape:window-x="41"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg900" />
<style
type="text/css"
id="style815">
path { stroke: #000; fill: #000; }
.blue { stroke: none; fill: #001ec8; }
.purple { stroke: none; fill: #14127b; }
.lace{
fill: none;
stroke: #000050;
stroke-width: 4.56;
stroke-linecap: round;
stroke-dasharray: 4.56, 9.12;
}
#beak { stroke-width: 1.4543; }
#eye { fill: #fff; }
#slogan{
font-family: DejaVu Sans, DejaVuSans, sans-serif;
font-size: 160px;
letter-spacing: 2.058;
}
</style>
<g
id="mascot"
transform="matrix(0.89154934,0,0,0.90465015,26.993382,126.4591)">
<path
d="m 1611.977,893.89 c 0,0 9.516,-105.79 218.437,-113.147 176.135,10.486 299.541,181.092 341.412,235.654 0,0 -152.667,101.169 -309.918,-74.527 -181.344,-162.704 -249.931,-47.98 -249.931,-47.98 z"
id="path817"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1611.977,893.89 c 0,0 9.516,-105.79 218.437,-113.147 176.135,10.486 299.541,181.092 341.412,235.654 0,0 -152.667,101.169 -309.918,-74.527 -181.344,-162.704 -249.931,-47.98 -249.931,-47.98 z"
id="path819"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1609.99,951.172 c 0,0 -17.842,77.477 85.748,137.389 72.271,41.798 31.627,53.267 31.627,53.267 0,0 33.552,6.073 89.941,-45.237 80.09,-72.877 39.384,-130.639 39.384,-130.639 0,0 -84.44,-119.765 -160.184,-28.007 -10e-4,-0.001 -23.964,28.114 -86.516,13.227 z"
id="path821"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1609.99,951.172 c 0,0 -17.842,77.477 85.748,137.389 72.271,41.798 31.627,53.267 31.627,53.267 0,0 33.552,6.073 89.941,-45.237 80.09,-72.877 39.384,-130.639 39.384,-130.639 0,0 -84.44,-119.765 -160.184,-28.007 -10e-4,-0.001 -23.964,28.114 -86.516,13.227 z"
id="path823"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1886.471,988.581 c 0,0 11.138,114.979 -147.041,163.575 0,0 162.152,-61.352 338.891,89.662 0,0 18.5,-138.54 102.683,-209.607 -9.579,2.773 -141.095,89.481 -294.533,-43.63 z"
id="path825"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1886.471,988.581 c 0,0 11.138,114.979 -147.041,163.575 0,0 162.152,-61.352 338.891,89.662 0,0 18.5,-138.54 102.683,-209.607 -9.579,2.773 -141.095,89.481 -294.533,-43.63 z"
id="path827"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1620.416,927.717 c 0,0 52.75,50.553 101.022,-46.643 0,0.001 -59.981,-41.814 -101.022,46.643 z"
id="path829"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1620.416,927.717 c 0,0 52.75,50.553 101.022,-46.643 0,0.001 -59.981,-41.814 -101.022,46.643 z"
id="path831"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
id="eye"
d="m 1663.644,906.901 c 1.978,6.592 -1.131,13.3 -6.948,14.985 -5.818,1.685 -12.139,-2.292 -14.12,-8.884 -1.978,-6.589 1.134,-13.297 6.952,-14.982 5.817,-1.685 12.138,2.292 14.116,8.881 z"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:#000000" />
<path
d="m 2425.161,1516.737 c 10.324,-223.678 6.519,-390.567 -146.927,-494.139 -197.333,-224.644 -429.309,-530.796 -380.538,-901.605 35.248,-267.985 54.6,-5.352 54.6,-5.352 0,0 43.629,382.154 187.388,504.897 366.257,323.333 366.683,500.749 285.477,896.199 z"
id="path834"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2425.161,1516.737 c 10.324,-223.678 6.519,-390.567 -146.927,-494.139 -197.333,-224.644 -429.309,-530.796 -380.538,-901.605 35.248,-267.985 54.6,-5.352 54.6,-5.352 0,0 43.629,382.154 187.388,504.897 366.257,323.333 366.683,500.749 285.477,896.199 z"
id="path836"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1828.757,315.384 c 0,0 52.75,258.796 193.011,419.396 147.362,168.734 110.844,131.4 234.271,285.874 0,0 -13.726,-12.4 -55.464,0.307 0,0 -112.847,-170.83 -224.24,-222.873 0,0 -139.636,-143.078 -161.395,-297.193 -35.334,-250.261 -3.128,-280.036 13.817,-185.511 z"
id="path838"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1828.757,315.384 c 0,0 52.75,258.796 193.011,419.396 147.362,168.734 110.844,131.4 234.271,285.874 0,0 -13.726,-12.4 -55.464,0.307 0,0 -112.847,-170.83 -224.24,-222.873 0,0 -139.636,-143.078 -161.395,-297.193 -35.334,-250.261 -3.128,-280.036 13.817,-185.511 z"
id="path840"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1948.479,783.247 c 0,0 -125.77,-141.083 -137.986,-179.972 -21.57,-68.681 -29.621,-88.42 -36.591,-29.45 -3.865,32.725 19.875,183.652 86.226,190.548 44.038,4.576 88.351,18.874 88.351,18.874 z"
id="path842"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1948.479,783.247 c 0,0 -125.77,-141.083 -137.986,-179.972 -21.57,-68.681 -29.621,-88.42 -36.591,-29.45 -3.865,32.725 19.875,183.652 86.226,190.548 44.038,4.576 88.351,18.874 88.351,18.874 z"
id="path844"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 265.722,564.054 c -8.152,108.752 34.836,295.607 94.35,374.47 116.74,238.76 440.318,520.593 886.586,435.668 138.708,-39.579 259.46,24.864 346.052,98.731 83.282,84.862 112.474,99.424 169.505,65.834 -59.141,-57.281 -122.45,-124.229 -121.132,-212.485 4.155,-64.08 27.511,-126.884 68.622,-161.109 -40.588,-142.423 -268.016,-149.301 -369.352,-139.12 -131.23,8.867 -262.996,76.582 -380.2,89.509 C 634.705,1088.895 398.79,864.875 322.157,519.999 289.667,361.155 273.87,455.302 265.722,564.054 Z"
id="path846"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 265.722,564.054 c -8.152,108.752 34.836,295.607 94.35,374.47 116.74,238.76 440.318,520.593 886.586,435.668 138.708,-39.579 259.46,24.864 346.052,98.731 83.282,84.862 112.474,99.424 169.505,65.834 -59.141,-57.281 -122.45,-124.229 -121.132,-212.485 4.155,-64.08 27.511,-126.884 68.622,-161.109 -40.588,-142.423 -268.016,-149.301 -369.352,-139.12 -131.23,8.867 -262.996,76.582 -380.2,89.509 C 634.705,1088.895 398.79,864.875 322.157,519.999 289.667,361.155 273.87,455.302 265.722,564.054 Z"
id="path848"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 562.838,1304.813 c 230.013,136.835 460.685,181.856 650.958,111.34 0,0 173.715,-105.567 417.032,116.186 0,0 -273.168,145.195 -534.295,135.596 -94.496,-3.474 -390.567,-65.621 -583.404,-262.864 -175.166,-179.173 -177.987,-366.224 -99.331,-247.676 77.492,116.786 149.04,147.418 149.04,147.418 z"
id="path850"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 562.838,1304.813 c 230.013,136.835 460.685,181.856 650.958,111.34 0,0 173.715,-105.567 417.032,116.186 0,0 -273.168,145.195 -534.295,135.596 -94.496,-3.474 -390.567,-65.621 -583.404,-262.864 -175.166,-179.173 -177.987,-366.224 -99.331,-247.676 77.492,116.786 149.04,147.418 149.04,147.418 z"
id="path852"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 965.398,1707.048 c 335.49,31.676 535.63,-83.299 681.562,-151.143 24.455,174.479 -266.714,305.736 -474.431,287.002 -138.928,-6.75 -333.321,-37.361 -454.117,-163.129 -11.647,-12.125 -91.392,-113.813 36.099,-35.268 82.58,39.237 141.487,48.613 210.887,62.538 z"
id="path854"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 965.398,1707.048 c 335.49,31.676 535.63,-83.299 681.562,-151.143 24.455,174.479 -266.714,305.736 -474.431,287.002 -138.928,-6.75 -333.321,-37.361 -454.117,-163.129 -11.647,-12.125 -91.392,-113.813 36.099,-35.268 82.58,39.237 141.487,48.613 210.887,62.538 z"
id="path856"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1684.492,1568.591 c 63.313,127.972 114.759,155.246 291.324,232.417 107.66,49.228 142.959,77.509 117.842,122.341 0,0 133.856,-71.649 196.353,-165.761 0,0 -339.162,-60.108 -515.42,-210.421 -44.607,36.702 -90.099,21.424 -90.099,21.424 z"
id="path858"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1684.492,1568.591 c 63.313,127.972 114.759,155.246 291.324,232.417 107.66,49.228 142.959,77.509 117.842,122.341 0,0 133.856,-71.649 196.353,-165.761 0,0 -339.162,-60.108 -515.42,-210.421 -44.607,36.702 -90.099,21.424 -90.099,21.424 z"
id="path860"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1670.934,1581.267 c 0,0 5.497,149.755 -207.863,248.039 -153.561,70.739 39.722,44.073 138.258,-3.812 101.34,-49.249 123.406,-118.457 108.874,-175.288 -11.095,-43.385 -28.16,-56.93 -39.269,-68.939 z"
id="path862"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1670.934,1581.267 c 0,0 5.497,149.755 -207.863,248.039 -153.561,70.739 39.722,44.073 138.258,-3.812 101.34,-49.249 123.406,-118.457 108.874,-175.288 -11.095,-43.385 -28.16,-56.93 -39.269,-68.939 z"
id="path864"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2421.78,1531.324 c 0,0 -61.757,173.345 -118.533,221.491 0,0 36.291,8.63 49.189,85.811 36.989,-90.593 69.344,-307.302 69.344,-307.302 z"
id="path866"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2421.78,1531.324 c 0,0 -61.757,173.345 -118.533,221.491 0,0 36.291,8.63 49.189,85.811 36.989,-90.593 69.344,-307.302 69.344,-307.302 z"
id="path868"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2298.067,1774.257 c 0,0 60.485,207.06 -215.383,436.233 -121.197,100.688 -246.916,149.312 -391.878,178.315 0,0 -287.012,47.125 -352.704,-156.11 0,0 58.862,34.805 211.641,24.406 430.153,-29.275 709.851,-266.408 748.324,-482.844 z"
id="path870"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2298.067,1774.257 c 0,0 60.485,207.06 -215.383,436.233 -121.197,100.688 -246.916,149.312 -391.878,178.315 0,0 -287.012,47.125 -352.704,-156.11 0,0 58.862,34.805 211.641,24.406 430.153,-29.275 709.851,-266.408 748.324,-482.844 z"
id="path872"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1496.487,2128.527 c 0,0 38.184,92.072 159.839,90.203 210.235,-3.234 551.609,-189.684 614.506,-413.938 0,0 -176.721,209.97 -498.868,285.338 -209.259,48.955 -275.477,38.397 -275.477,38.397 z"
id="path874"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 1496.487,2128.527 c 0,0 38.184,92.072 159.839,90.203 210.235,-3.234 551.609,-189.684 614.506,-413.938 0,0 -176.721,209.97 -498.868,285.338 -209.259,48.955 -275.477,38.397 -275.477,38.397 z"
id="path876"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2319.562,1784.373 c 67.984,66.106 49.556,575.534 -455.449,704.963 0,0 -201.498,64.398 -354.49,-55.349 201.174,25.111 498.821,-106.314 617.34,-227.303 131.909,-134.655 211.685,-272.923 192.599,-422.311 z"
id="path878"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 2319.562,1784.373 c 67.984,66.106 49.556,575.534 -455.449,704.963 0,0 -201.498,64.398 -354.49,-55.349 201.174,25.111 498.821,-106.314 617.34,-227.303 131.909,-134.655 211.685,-272.923 192.599,-422.311 z"
id="path880"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
d="m 947.427,945.126 c 251.781,-104.964 473.12,-102.836 658.46,-50.581 0,0 -8.138,17.765 -24.361,13.907 -5.711,-1.357 1.667,12.11 26.509,40.646 -188.827,-76.332 -414.26,-62.7 -660.608,-3.972 z"
id="path882"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000" />
<path
id="beak"
d="m 947.427,945.126 c 251.781,-104.964 473.12,-102.836 658.46,-50.581 0,0 -8.138,17.765 -24.361,13.907 -5.711,-1.357 1.667,12.11 26.509,40.646 -188.827,-76.332 -414.26,-62.7 -660.608,-3.972 z"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000;stroke-width:1.45430005" />
<path
class="blue"
d="m 2072.565,1258.561 c 0,0 -40.71,-39.82 -105.351,-69.183 -32.318,-14.681 -73.917,-29.034 -112.812,-29.92 -47.728,-1.085 -90.031,-8.288 -139.967,30.381 -161.914,198.937 48.743,442.226 554.504,543.472 -53.728,-4.627 -636.817,-584.716 -196.374,-474.75 z"
id="path885"
inkscape:connector-curvature="0"
style="fill:#001ec8;stroke:none" />
<path
class="lace"
d="m 2072.565,1258.561 c 0,0 -40.71,-39.82 -105.351,-69.183 -32.318,-14.681 -73.917,-29.034 -112.812,-29.92 -47.728,-1.085 -90.031,-8.288 -139.967,30.381 -161.914,198.937 48.743,442.226 554.504,543.472 -53.728,-4.627 -636.817,-584.716 -196.374,-474.75 z"
id="path887"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000050;stroke-width:4.55999994;stroke-linecap:round;stroke-dasharray:4.56, 9.12" />
<path
class="blue"
d="m 2089,1250.758 c 0,0 6.621,-47.435 31.076,-105.404 24.456,-57.972 69.361,-122.52 135.318,-108.428 99.035,38.683 198.1,202.659 144.854,504.171 -27.158,96.066 -92.941,186.513 -92.941,186.513 11.774,2.201 -14.852,-880.663 -218.307,-476.852 z"
id="path889"
inkscape:connector-curvature="0"
style="fill:#001ec8;stroke:none" />
<path
class="lace"
d="m 2089,1250.758 c 0,0 6.621,-47.435 31.076,-105.404 24.456,-57.972 69.361,-122.52 135.318,-108.428 99.035,38.683 198.1,202.659 144.854,504.171 -27.158,96.066 -92.941,186.513 -92.941,186.513 11.774,2.201 -14.852,-880.663 -218.307,-476.852 z"
id="path891"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000050;stroke-width:4.55999994;stroke-linecap:round;stroke-dasharray:4.56, 9.12" />
<path
class="purple"
d="m 2093.633,1281.527 c -180.681,-66.114 -247.607,81.789 206.231,465.208 -9.578,-211.528 -48.209,-785.232 -206.231,-465.208 z"
id="path893"
inkscape:connector-curvature="0"
style="fill:#14127b;stroke:none" />
<path
class="lace"
d="m 2093.633,1281.527 c -180.681,-66.114 -247.607,81.789 206.231,465.208 -9.578,-211.528 -48.209,-785.232 -206.231,-465.208 z"
id="path895"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000050;stroke-width:4.55999994;stroke-linecap:round;stroke-dasharray:4.56, 9.12" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

Some files were not shown because too many files have changed in this diff Show More