diff --git a/README.md b/README.md index fff1e2c..101e332 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,14 @@ -# templates -Templates for onboarding new users into GitHub Actions +These are templates for onboarding new user into GitHub Actions. There are a few directories: +* ci: solutions for Continuous Integration +* automation: templates for automating workflow. +* icons: svg icons for the relevant template + +Each template must be written in YAML and have a `.yml` extension. Each template needs a corresponding `.properties.json` file that contains extra metadata about the template. + +For example: `ci/python-django.yml` and `ci\python-django.properties.json`. + +Valid properties: +* `name`: the name shown in onboarding +* `description`: the description shown in onboarding +* `iconName`: the icon name in the relevant folder, for example `django` should have an icon `icons/django.svg`. Only SVG is supported at this time. +* `category`: the category that it will be shown under \ No newline at end of file diff --git a/ci/android.properties.json b/ci/android.properties.json new file mode 100644 index 0000000..dba3b00 --- /dev/null +++ b/ci/android.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Android", + "description": "Build an Android project with Gradle.", + "iconName": "android", + "category": "Mobile" +} \ No newline at end of file diff --git a/ci/android.yml b/ci/android.yml new file mode 100644 index 0000000..86f5781 --- /dev/null +++ b/ci/android.yml @@ -0,0 +1,20 @@ +on: [push] + +name: Android + +jobs: + + build: + name: Build + runs-on: ubuntu-latest # macOS-latest + steps: + + - uses: actions/checkout@master + + - name: set up JDK 1.8 + uses: actions/setup-java@master + with: + version: 1.8 + + - name: Build with Gradle + run: ./gradlew build diff --git a/ci/ant.properties.json b/ci/ant.properties.json new file mode 100644 index 0000000..ab79aa3 --- /dev/null +++ b/ci/ant.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Ant", + "description": "Build and test a Java project with Apache Ant.", + "iconName": "ant", + "category": "Java" +} \ No newline at end of file diff --git a/ci/ant.yml b/ci/ant.yml new file mode 100644 index 0000000..4c6e4c2 --- /dev/null +++ b/ci/ant.yml @@ -0,0 +1,21 @@ +on: [push] + +name: Ant + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Set up JDK 1.8 + uses: actions/setup-java@master + with: + version: 1.8 + + - name: Build with Ant + working-directory: '' + run: ant -noinput -buildfile build.xml diff --git a/ci/asp.net-core.properties.json b/ci/asp.net-core.properties.json new file mode 100644 index 0000000..f2bc9e8 --- /dev/null +++ b/ci/asp.net-core.properties.json @@ -0,0 +1,6 @@ +{ + "name": "ASP.NET Core", + "description": "Build and test an ASP.NET Core project targeting .NET Core.", + "iconName": "dotnetcore", + "category": ".NET" +} \ No newline at end of file diff --git a/ci/asp.net-core.yml b/ci/asp.net-core.yml new file mode 100644 index 0000000..f00ade0 --- /dev/null +++ b/ci/asp.net-core.yml @@ -0,0 +1,20 @@ +on: [push] + +name: ASP.NET Core + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Setup .NET Core + uses: actions/setup-dotnet@master + with: + version: 2.2.6 + + - name: Build with dotnet + run: dotnet build --configuration Release diff --git a/ci/blank.properties.json b/ci/blank.properties.json new file mode 100644 index 0000000..459a81f --- /dev/null +++ b/ci/blank.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Blank workflow file", + "description": "Start with a file with the minimum necessary structure.", + "iconName": "blank", + "category": null +} \ No newline at end of file diff --git a/ci/blank.yml b/ci/blank.yml new file mode 100644 index 0000000..4fbf968 --- /dev/null +++ b/ci/blank.yml @@ -0,0 +1,18 @@ +on: [push] + +jobs: + + run: + name: Run + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Run a one-line script + run: echo Hello, world! + + - name: Run a multi-line script + run: | + echo Add other actions to build, + echo test, and deploy your project. diff --git a/ci/c-cpp.properties.json b/ci/c-cpp.properties.json new file mode 100644 index 0000000..ce096ea --- /dev/null +++ b/ci/c-cpp.properties.json @@ -0,0 +1,6 @@ +{ + "name": "C/C++ with Make", + "description": "Build and test a C/C++ project using Make.", + "iconName": "c-cpp", + "category": null +} \ No newline at end of file diff --git a/ci/c-cpp.yml b/ci/c-cpp.yml new file mode 100644 index 0000000..8e0e85a --- /dev/null +++ b/ci/c-cpp.yml @@ -0,0 +1,21 @@ +on: [push] + +name: C/C++ with make + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: configure + run: ./configure + + - name: make + run: make + + - name: make test + run: make test diff --git a/ci/clojure.properties.json b/ci/clojure.properties.json new file mode 100644 index 0000000..d0ab96b --- /dev/null +++ b/ci/clojure.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Clojure", + "description": "Build and test a Clojure project with Leiningen.", + "iconName": "clojure", + "category": null +} \ No newline at end of file diff --git a/ci/clojure.yml b/ci/clojure.yml new file mode 100644 index 0000000..6ee3c8f --- /dev/null +++ b/ci/clojure.yml @@ -0,0 +1,18 @@ +on: [push] + +name: Clojure + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: lein deps + + - name: Run tests + run: lein test diff --git a/ci/crystal.properties.json b/ci/crystal.properties.json new file mode 100644 index 0000000..6fab360 --- /dev/null +++ b/ci/crystal.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Crystal", + "description": "Build and test a Crystal project.", + "iconName": "crystal", + "category": null +} \ No newline at end of file diff --git a/ci/crystal.yml b/ci/crystal.yml new file mode 100644 index 0000000..8afbea2 --- /dev/null +++ b/ci/crystal.yml @@ -0,0 +1,18 @@ +on: [push] + +name: Crystal + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: shards install + + - name: Run tests + run: crystal spec diff --git a/ci/dart.properties.json b/ci/dart.properties.json new file mode 100644 index 0000000..cc31f21 --- /dev/null +++ b/ci/dart.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Dart", + "description": "Build and test a Dart project with Pub.", + "iconName": "dart", + "category": null +} \ No newline at end of file diff --git a/ci/dart.yml b/ci/dart.yml new file mode 100644 index 0000000..3854d9f --- /dev/null +++ b/ci/dart.yml @@ -0,0 +1,18 @@ +on: [push] + +name: Dart + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: pub get + + - name: Run tests + run: pub run test diff --git a/ci/docker-image.properties.json b/ci/docker-image.properties.json new file mode 100644 index 0000000..cd87e42 --- /dev/null +++ b/ci/docker-image.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Docker image", + "description": "Build a Docker image to deploy, run, or push to a registry.", + "iconName": "docker", + "category": null +} \ No newline at end of file diff --git a/ci/docker-image.yml b/ci/docker-image.yml new file mode 100644 index 0000000..eaf091d --- /dev/null +++ b/ci/docker-image.yml @@ -0,0 +1,15 @@ +on: [push] + +name: Docker image + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Build the Docker image + run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) diff --git a/ci/elixir.properties.json b/ci/elixir.properties.json new file mode 100644 index 0000000..d2a2e70 --- /dev/null +++ b/ci/elixir.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Elixir", + "description": "Build and test an Elixir project with Mix.", + "iconName": "elixir", + "category": null +} \ No newline at end of file diff --git a/ci/elixir.yml b/ci/elixir.yml new file mode 100644 index 0000000..42cfedd --- /dev/null +++ b/ci/elixir.yml @@ -0,0 +1,21 @@ +on: [push] + +name: Elixir + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: | + mix local.rebar --force; + mix local.hex --force; + mix deps.get + + - name: Run tests + run: mix test diff --git a/ci/erlang.properties.json b/ci/erlang.properties.json new file mode 100644 index 0000000..c09b4dc --- /dev/null +++ b/ci/erlang.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Erlang", + "description": "Build and test an Erlang project with rebar.", + "iconName": "erlang", + "category": null +} \ No newline at end of file diff --git a/ci/erlang.yml b/ci/erlang.yml new file mode 100644 index 0000000..d7e14d2 --- /dev/null +++ b/ci/erlang.yml @@ -0,0 +1,21 @@ +on: [push] + +name: Erlang + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: rebar get-deps + + - name: Compile + run: rebar compile + + - name: Run tests + run: rebar skip_deps=true eunit diff --git a/ci/gradle.properties.json b/ci/gradle.properties.json new file mode 100644 index 0000000..57b3fb9 --- /dev/null +++ b/ci/gradle.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Gradle", + "description": "Build and test a Java project using a Gradle wrapper script.", + "iconName": "gradle", + "category": "Java" +} \ No newline at end of file diff --git a/ci/gradle.yml b/ci/gradle.yml new file mode 100644 index 0000000..de162b4 --- /dev/null +++ b/ci/gradle.yml @@ -0,0 +1,20 @@ +on: [push] + +name: Gradle + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Set up JDK 1.8 + uses: actions/setup-java@master + with: + version: 1.8 + + - name: Build with Gradle + run: ./gradlew build diff --git a/ci/haskell.properties.json b/ci/haskell.properties.json new file mode 100644 index 0000000..0888210 --- /dev/null +++ b/ci/haskell.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Haskell", + "description": "Build and test a Haskell project with Cabal.", + "iconName": "haskell", + "category": null +} \ No newline at end of file diff --git a/ci/haskell.yml b/ci/haskell.yml new file mode 100644 index 0000000..25afa2c --- /dev/null +++ b/ci/haskell.yml @@ -0,0 +1,23 @@ +on: [push] + +name: Haskell + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Install dependencies + run: cabal install --only-dependencies --enable-tests + + - name: Build + run: | + cabal configure --enable-tests + cabal build + + - name: Run tests + run: cabal test diff --git a/ci/jekyll.properties.json b/ci/jekyll.properties.json new file mode 100644 index 0000000..e9045f6 --- /dev/null +++ b/ci/jekyll.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Jekyll", + "description": "Package a Jekyll site using the jekyll/builder Docker image.", + "iconName": "jekyll", + "category": "HTML" +} \ No newline at end of file diff --git a/ci/jekyll.yml b/ci/jekyll.yml new file mode 100644 index 0000000..2a84e76 --- /dev/null +++ b/ci/jekyll.yml @@ -0,0 +1,19 @@ +on: [push] + +name: Jekyll site + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - 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 \ + jekyll build --future diff --git a/ci/maven.properties.json b/ci/maven.properties.json new file mode 100644 index 0000000..5a229a5 --- /dev/null +++ b/ci/maven.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Maven", + "description": "Build and test a Java project with Apache Maven.", + "iconName": "maven", + "category": "Java" +} \ No newline at end of file diff --git a/ci/maven.yml b/ci/maven.yml new file mode 100644 index 0000000..829a61c --- /dev/null +++ b/ci/maven.yml @@ -0,0 +1,20 @@ +on: [push] + +name: Maven + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Set up JDK 1.8 + uses: actions/setup-java@master + with: + version: 1.8 + + - name: Build with Maven + run: mvn package --file pom.xml diff --git a/ci/node.js.properties.json b/ci/node.js.properties.json new file mode 100644 index 0000000..4714438 --- /dev/null +++ b/ci/node.js.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Node.js", + "description": "Build and test a Node.js project with npm.", + "iconName": "nodejs", + "category": "JavaScript" +} \ No newline at end of file diff --git a/ci/node.js.yml b/ci/node.js.yml new file mode 100644 index 0000000..68d15c8 --- /dev/null +++ b/ci/node.js.yml @@ -0,0 +1,24 @@ +on: [push] + +name: Node.js + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Use Node.js 10.x + uses: actions/setup-node@master + with: + version: 10.x + + - name: npm install, build, and test + run: | + npm install + npm run build --if-present + npm test + diff --git a/ci/python-django.properties.json b/ci/python-django.properties.json new file mode 100644 index 0000000..e9a2b48 --- /dev/null +++ b/ci/python-django.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Python Django", + "description": "Test a Django project on multiple versions of Python.", + "iconName": "django", + "category": "Python" +} \ No newline at end of file diff --git a/ci/python-django.yml b/ci/python-django.yml new file mode 100644 index 0000000..d332923 --- /dev/null +++ b/ci/python-django.yml @@ -0,0 +1,41 @@ +on: [push] + +name: Python Django + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Set up Python 3.6 + uses: actions/setup-python@master + with: + version: 3.6 + + - name: Export project path + shell: python + run: | + """Search all subdirectories for `manage.py`.""" + from glob import iglob + from os import path + manage_py = next(iglob(path.join(**, manage.py), recursive=True), None) + if not manage_py: + raise SystemExit(Could not find a Django project) + project_location = path.dirname(path.abspath(manage_py)) + print(Found Django project in , project_location) + print(##[set-env name=DJANGO_PROJECT_ROOT]{}.format(project_location)) + + - name: Install prerequisites + run: | + python -m pip install --upgrade pip setuptools wheel + pip install -r requirements.txt + pip install unittest-xml-reporting + + - name: Run tests + run: | + pushd "${DJANGO_PROJECT_ROOT}" + python manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input diff --git a/ci/python-package.properties.json b/ci/python-package.properties.json new file mode 100644 index 0000000..9778a41 --- /dev/null +++ b/ci/python-package.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Python package", + "description": "Create and test a Python package on multiple Python versions.", + "iconName": "python", + "category": "Python" +} \ No newline at end of file diff --git a/ci/python-package.yml b/ci/python-package.yml new file mode 100644 index 0000000..711eb8f --- /dev/null +++ b/ci/python-package.yml @@ -0,0 +1,31 @@ +on: [push] + +name: Python package + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + python-version: [2.7, 3.5, 3.6, 3.7] + steps: + + - uses: actions/checkout@master + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@master + with: + version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Test with pytest + run: | + pip install pytest + pytest diff --git a/ci/rust.properties.json b/ci/rust.properties.json new file mode 100644 index 0000000..306f61e --- /dev/null +++ b/ci/rust.properties.json @@ -0,0 +1,6 @@ +{ + "name": "Rust", + "description": "Build and test a Rust project with Cargo.", + "iconName": "rust", + "category": null +} \ No newline at end of file diff --git a/ci/rust.yml b/ci/rust.yml new file mode 100644 index 0000000..4ad3f8c --- /dev/null +++ b/ci/rust.yml @@ -0,0 +1,18 @@ +on: [push] + +name: Rust + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@master + + - name: Build + run: cargo build --verbose + + - name: Run tests + run: cargo test --verbose diff --git a/icons/android.svg b/icons/android.svg new file mode 100644 index 0000000..9173ecb --- /dev/null +++ b/icons/android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/angular.svg b/icons/angular.svg new file mode 100644 index 0000000..9fb436e --- /dev/null +++ b/icons/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/ant.svg b/icons/ant.svg new file mode 100644 index 0000000..abfe78d --- /dev/null +++ b/icons/ant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/aspdotnet.svg b/icons/aspdotnet.svg new file mode 100644 index 0000000..c7a8cb6 --- /dev/null +++ b/icons/aspdotnet.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/icons/blank.svg b/icons/blank.svg new file mode 100644 index 0000000..a194220 --- /dev/null +++ b/icons/blank.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/icons/c-cpp.svg b/icons/c-cpp.svg new file mode 100644 index 0000000..b22991d --- /dev/null +++ b/icons/c-cpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/clojure.svg b/icons/clojure.svg new file mode 100644 index 0000000..0803ff7 --- /dev/null +++ b/icons/clojure.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/icons/crystal.svg b/icons/crystal.svg new file mode 100644 index 0000000..1b417fe --- /dev/null +++ b/icons/crystal.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/icons/dart.svg b/icons/dart.svg new file mode 100644 index 0000000..4023be4 --- /dev/null +++ b/icons/dart.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/icons/django.svg b/icons/django.svg new file mode 100644 index 0000000..03ff526 --- /dev/null +++ b/icons/django.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/docker.svg b/icons/docker.svg new file mode 100644 index 0000000..a514669 --- /dev/null +++ b/icons/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/dotnet.svg b/icons/dotnet.svg new file mode 100644 index 0000000..aeb5181 --- /dev/null +++ b/icons/dotnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/dotnetcore.svg b/icons/dotnetcore.svg new file mode 100644 index 0000000..1f49490 --- /dev/null +++ b/icons/dotnetcore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/elixir.svg b/icons/elixir.svg new file mode 100644 index 0000000..0a60f2a --- /dev/null +++ b/icons/elixir.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/erlang.svg b/icons/erlang.svg new file mode 100644 index 0000000..db6551b --- /dev/null +++ b/icons/erlang.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/icons/go.svg b/icons/go.svg new file mode 100644 index 0000000..50cd7ef --- /dev/null +++ b/icons/go.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/icons/gradle.svg b/icons/gradle.svg new file mode 100644 index 0000000..c0216f6 --- /dev/null +++ b/icons/gradle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/grunt.svg b/icons/grunt.svg new file mode 100644 index 0000000..031dfd4 --- /dev/null +++ b/icons/grunt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/gulp.svg b/icons/gulp.svg new file mode 100644 index 0000000..b111c38 --- /dev/null +++ b/icons/gulp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/haskell.svg b/icons/haskell.svg new file mode 100644 index 0000000..30d54e1 --- /dev/null +++ b/icons/haskell.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/icons/html.svg b/icons/html.svg new file mode 100644 index 0000000..33a602c --- /dev/null +++ b/icons/html.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/jekyll.svg b/icons/jekyll.svg new file mode 100644 index 0000000..3642748 --- /dev/null +++ b/icons/jekyll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/maven.svg b/icons/maven.svg new file mode 100644 index 0000000..1f1b219 --- /dev/null +++ b/icons/maven.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/nodejs.svg b/icons/nodejs.svg new file mode 100644 index 0000000..d858c45 --- /dev/null +++ b/icons/nodejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/php.svg b/icons/php.svg new file mode 100644 index 0000000..45f2f39 --- /dev/null +++ b/icons/php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/python.svg b/icons/python.svg new file mode 100644 index 0000000..72e8dc6 --- /dev/null +++ b/icons/python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/ruby.svg b/icons/ruby.svg new file mode 100644 index 0000000..05ad28b --- /dev/null +++ b/icons/ruby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/rust.svg b/icons/rust.svg new file mode 100644 index 0000000..6db3ef6 --- /dev/null +++ b/icons/rust.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/uwp.svg b/icons/uwp.svg new file mode 100644 index 0000000..88daf6e --- /dev/null +++ b/icons/uwp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/webpack.svg b/icons/webpack.svg new file mode 100644 index 0000000..3d15e79 --- /dev/null +++ b/icons/webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/xamarin.svg b/icons/xamarin.svg new file mode 100644 index 0000000..f380b80 --- /dev/null +++ b/icons/xamarin.svg @@ -0,0 +1,11 @@ + + + + + logo_xamarin + + diff --git a/icons/xcode.svg b/icons/xcode.svg new file mode 100644 index 0000000..19fcf2d --- /dev/null +++ b/icons/xcode.svg @@ -0,0 +1,57 @@ + + + + + logo_xcode + + + + + + + + + + + + + + + + + + + + + + +