Skip to content

Commit 7bfa385

Browse files
authored
Merge branch 'main' into render-product-landing-introlinks-dynamically
2 parents baf661c + 887b9ad commit 7bfa385

20 files changed

Lines changed: 292 additions & 34 deletions
177 KB
Loading
51.5 KB
Loading

content/actions/guides/building-and-testing-net.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
steps:
8787
- uses: actions/checkout@v2
8888
- name: Setup dotnet ${{ matrix.dotnet-version }}
89-
uses: actions/setup-dotnet@v1.7.2
89+
uses: actions/setup-dotnet@v1
9090
with:
9191
dotnet-version: ${{ matrix.dotnet-version }}
9292
# You can test your matrix by printing the current dotnet version
@@ -102,7 +102,7 @@ You can configure your job to use a specific version of .NET, such as `3.1.3`. A
102102
{% raw %}
103103
```yaml
104104
- name: Setup .NET 3.x
105-
uses: actions/setup-dotnet@v2
105+
uses: actions/setup-dotnet@v1
106106
with:
107107
# Semantic version range syntax or exact version of a dotnet version
108108
dotnet-version: '3.x'
@@ -118,7 +118,7 @@ You can configure your job to use a specific version of .NET, such as `3.1.3`. A
118118
steps:
119119
- uses: actions/checkout@v2
120120
- name: Setup dotnet
121-
uses: actions/setup-dotnet@v1.7.2
121+
uses: actions/setup-dotnet@v1
122122
with:
123123
dotnet-version: '3.1.x'
124124
- name: Install dependencies
@@ -139,7 +139,7 @@ For more information, see "[Caching dependencies to speed up workflows](/actions
139139
steps:
140140
- uses: actions/checkout@v2
141141
- name: Setup dotnet
142-
uses: actions/setup-dotnet@v1.7.2
142+
uses: actions/setup-dotnet@v1
143143
with:
144144
dotnet-version: '3.1.x'
145145
- uses: actions/cache@v2
@@ -171,7 +171,7 @@ You can use the same commands that you use locally to build and test your code.
171171
steps:
172172
- uses: actions/checkout@v2
173173
- name: Setup dotnet
174-
uses: actions/setup-dotnet@v1.7.2
174+
uses: actions/setup-dotnet@v1
175175
with:
176176
dotnet-version: '3.1.x'
177177
- name: Install dependencies
@@ -206,7 +206,7 @@ jobs:
206206
steps:
207207
- uses: actions/checkout@v2
208208
- name: Setup dotnet
209-
uses: actions/setup-dotnet@v1.7.2
209+
uses: actions/setup-dotnet@v1
210210
with:
211211
dotnet-version: ${{ matrix.dotnet-version }}
212212
- name: Install dependencies
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
---
2+
title: Building and testing Xamarin applications
3+
intro: You can create a continuous integration (CI) workflow in GitHub Actions to build and test your Xamarin application.
4+
product: '{% data reusables.gated-features.actions %}'
5+
versions:
6+
free-pro-team: '*'
7+
enterprise-server: '>=2.22'
8+
github-ae: '*'
9+
type: 'tutorial'
10+
topics:
11+
- 'CI'
12+
- 'Xamarin'
13+
- 'Xamarin.iOS'
14+
- 'Xamarin.Android'
15+
- 'Android'
16+
- 'iOS'
17+
---
18+
19+
{% data reusables.actions.enterprise-beta %}
20+
{% data reusables.actions.enterprise-github-hosted-runners %}
21+
{% data reusables.actions.ae-beta %}
22+
23+
### Introduction
24+
25+
This guide shows you how to create a workflow that performs continuous integration (CI) for your Xamarin project. The workflow you create will allow you to see when commits to a pull request cause build or test failures against your default branch; this approach can help ensure that your code is always healthy.
26+
27+
{% data variables.product.prodname_actions %}-hosted macOS runner stores Xamarin SDK versions and the associated Mono versions as a set of symlinks to Xamarin SDK locations that are available by a single bundle symlink. For a full list of available Xamarin SDK versions and their corresponding bundles, see the runners documentation:
28+
29+
* [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xamarin-bundles)
30+
* [macOS 11.0](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md#xamarin-bundles)
31+
32+
{% data reusables.github-actions.macos-runner-preview %}
33+
34+
### Prerequisites
35+
36+
We recommend that you have a basic understanding of Xamarin, .NET Core SDK, YAML, workflow configuration options, and how to create a workflow file. For more information, see:
37+
38+
- "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions)"
39+
- "[Getting started with .NET](https://dotnet.microsoft.com/learn)"
40+
- "[Learn Xamarin](https://dotnet.microsoft.com/learn/xamarin)"
41+
42+
### Bulding Xamarin.iOS apps
43+
44+
The example below demonstrates how to change the default Xamarin bundle and build a Xamarin.iOS application.
45+
46+
{% raw %}
47+
```yaml
48+
name: Build Xamarin.iOS app
49+
50+
on: [push]
51+
52+
jobs:
53+
build:
54+
55+
runs-on: macos-latest
56+
57+
steps:
58+
- uses: actions/checkout@v2
59+
- name: Select default Xamarin bundle to 6_12_6
60+
run: |
61+
XAMARIN_SDK=6_12_6
62+
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
63+
64+
- name: Set default Xcode 12.3
65+
run: |
66+
XCODE_ROOT=/Applications/Xcode_12.3.0.app
67+
echo "MD_APPLE_SDK_ROOT=$XCODE_ROOT" >> $GITHUB_ENV
68+
sudo xcode-select -s $XCODE_ROOT
69+
70+
- name: Setup .NET Core SDK 5.0.x
71+
uses: actions/setup-dotnet@v1
72+
with:
73+
dotnet-version: '5.0.x'
74+
75+
- name: Install dependencies
76+
run: nuget restore <sln_file_path>
77+
78+
- name: Build
79+
run: msbuild <csproj_file_path> /p:Configuration=Debug /p:Platform=iPhoneSimulator /t:Rebuild
80+
```
81+
{% endraw %}
82+
83+
### Bulding Xamarin.Android apps
84+
85+
The example below demonstrates how to change default the Xamarin bundle and build a Xamarin.Android application.
86+
87+
{% raw %}
88+
```yaml
89+
name: Build Xamarin.Android app
90+
91+
on: [push]
92+
93+
jobs:
94+
build:
95+
96+
runs-on: macos-latest
97+
98+
steps:
99+
- uses: actions/checkout@v2
100+
- name: Select default Xamarin bundle to 6_12_6
101+
run: |
102+
XAMARIN_SDK=6_12_6
103+
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
104+
105+
- name: Setup .NET Core SDK 5.0.x
106+
uses: actions/setup-dotnet@v1
107+
with:
108+
dotnet-version: '5.0.x'
109+
110+
- name: Install dependencies
111+
run: nuget restore <sln_file_path>
112+
113+
- name: Build
114+
run: msbuild <csproj_file_path> /t:PackageForAndroid /p:Configuration=Debug
115+
```
116+
{% endraw %}
117+
118+
### Specifying a .NET version
119+
120+
To use a preinstalled version of the .NET Core SDK on a {% data variables.product.prodname_dotcom %}-hosted runner, use the `setup-dotnet` action. This action finds a specific version of .NET from the tools cache on each runner, and adds the necessary binaries to `PATH`. These changes will persist for the remainder of the job.
121+
122+
The `setup-dotnet` action is the recommended way of using .NET with {% data variables.product.prodname_actions %}, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to `PATH`. For more information, see the [`setup-dotnet`](https://github.com/marketplace/actions/setup-net-core-sdk) action.

content/actions/guides/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ includeGuides:
4242
- /actions/guides/building-and-testing-java-with-maven
4343
- /actions/guides/building-and-testing-java-with-gradle
4444
- /actions/guides/building-and-testing-java-with-ant
45+
- /actions/guides/building-and-testing-xamarin-applications
4546
- /actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development
4647
- /actions/guides/publishing-nodejs-packages
4748
- /actions/guides/publishing-java-packages-with-maven
@@ -84,6 +85,7 @@ includeGuides:
8485
<!-- {% link_in_list /building-and-testing-java-with-gradle %} -->
8586
<!-- {% link_in_list /building-and-testing-java-with-ant %} -->
8687
<!-- {% link_in_list /installing-an-apple-certificate-on-macos-runners-for-xcode-development %} -->
88+
<!-- {% link_in_list /building-and-testing-xamarin-applications %} -->
8789
<!-- {% link_in_list /about-packaging-with-github-actions %} -->
8890
<!-- {% link_in_list /publishing-nodejs-packages %} -->
8991
<!-- {% link_in_list /publishing-java-packages-with-maven %} -->

content/github/administering-a-repository/about-protected-branches.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ For each branch protection rule, you can choose to enable or disable the followi
4747
- [Allow force pushes](#allow-force-pushes)
4848
- [Allow deletions](#allow-deletions)
4949

50+
For more information on how to set up branch protection, see "[Managing a branch protection rule](/github/administering-a-repository/managing-a-branch-protection-rule)."
51+
5052
#### Require pull request reviews before merging
5153

5254
{% data reusables.pull_requests.required-reviews-for-prs-summary %}
@@ -100,7 +102,15 @@ When you enable required commit signing on a branch, contributors {% if currentV
100102

101103
{% note %}
102104

105+
{% if currentVersion == "free-pro-team@latest" %}
106+
**Notes:**
107+
108+
* If you have enabled vigilant mode, which indicates that your commits will always be signed, any commits that {% data variables.product.prodname_dotcom %} identifies as "Partially verified" are permitted on branches that require signed commits. For more information about vigilant mode, see "[Displaying verification statuses for all of your commits](/github/authenticating-to-github/displaying-verification-statuses-for-all-of-your-commits)."
109+
* If a collaborator pushes an unsigned commit to a branch that requires commit signatures, the collaborator will need to rebase the commit to include a verified signature, then force push the rewritten commit to the branch.
110+
111+
{% else %}
103112
**Note:** If a collaborator pushes an unsigned commit to a branch that requires commit signatures, the collaborator will need to rebase the commit to include a verified signature, then force push the rewritten commit to the branch.
113+
{% endif %}
104114

105115
{% endnote %}
106116

content/github/authenticating-to-github/about-commit-signature-verification.md

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: About commit signature verification
3-
intro: 'Using GPG or S/MIME, you can sign tags and commits locally. These tags or commits are marked as verified on {% data variables.product.product_name %} so other people can trust that the changes come from a trusted source.'
3+
intro: 'Using GPG or S/MIME, you can sign tags and commits locally. These tags or commits are marked as verified on {% data variables.product.product_name %} so other people can be confident that the changes come from a trusted source.'
44
redirect_from:
55
- /articles/about-gpg-commit-and-tag-signatures/
66
- /articles/about-gpg/
@@ -16,15 +16,34 @@ topics:
1616

1717
### About commit signature verification
1818

19-
You can sign commits and tags locally, so other people can verify that your work comes from a trusted source. If a commit or tag has a GPG or S/MIME signature that is cryptographically verifiable, {% data variables.product.product_name %} marks the commit or tag as verified.
19+
You can sign commits and tags locally, to give other people confidence about the origin of a change you have made. If a commit or tag has a GPG or S/MIME signature that is cryptographically verifiable, GitHub marks the commit or tag {% if currentVersion == "free-pro-team@latest" %}"Verified" or "Partially verified."{% else %}"Verified."{% endif %}
2020

2121
![Verified commit](/assets/images/help/commits/verified-commit.png)
2222

23-
If a commit or tag has a signature that cannot be verified, {% data variables.product.product_name %} marks the commit or tag as unverified.
23+
{% if currentVersion == "free-pro-team@latest" %}
24+
Commits and tags have the following verification statuses, depending on whether you have enabled vigilant mode. By default vigilant mode is not enabled. For information on how to enable vigilant mode, see "[Displaying verification statuses for all of your commits](/github/authenticating-to-github/displaying-verification-statuses-for-all-of-your-commits)."
25+
26+
{% data reusables.identity-and-permissions.vigilant-mode-beta-note %}
27+
28+
#### Default statuses
29+
30+
| Status | Description |
31+
| -------------- | ----------- |
32+
| **Verified** | The commit is signed and the signature was successfully verified.
33+
| **Unverified** | The commit is signed but the signature could not be verified.
34+
| No verification status | The commit is not signed.
35+
36+
#### Statuses with vigilant mode enabled
37+
38+
{% data reusables.identity-and-permissions.vigilant-mode-verification-statuses %}
39+
40+
{% else %}
41+
If a commit or tag has a signature that can't be verified, {% data variables.product.product_name %} marks the commit or tag "Unverified."
42+
{% endif %}
2443

2544
Repository administrators can enforce required commit signing on a branch to block all commits that are not signed and verified. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-signed-commits)."
2645

27-
You can check the verification status of your signed commits or tags on {% data variables.product.product_name %} and view why your commit signatures might be unverified. For more information, see "[Checking your commit and tag signature verification status](/articles/checking-your-commit-and-tag-signature-verification-status)."
46+
{% data reusables.identity-and-permissions.verification-status-check %}
2847

2948
{% if currentVersion == "free-pro-team@latest" %}
3049
{% data variables.product.product_name %} will automatically use GPG to sign commits you make using the {% data variables.product.product_name %} web interface, except for when you squash and merge a pull request that you are not the author of. You can optionally choose to have {% data variables.product.product_name %} sign commits you make in {% data variables.product.prodname_codespaces %}. Commits signed by {% data variables.product.product_name %} will have a verified status on {% data variables.product.product_name %}. You can verify the signature locally using the public key available at https://github.com/web-flow.gpg. For more information about enabling GPG verification for your codespaces, see "[Managing GPG verification for {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/managing-gpg-verification-for-codespaces)."

content/github/authenticating-to-github/checking-your-commit-and-tag-signature-verification-status.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,20 @@ topics:
1717

1818
1. On {% data variables.product.product_name %}, navigate to your pull request.
1919
{% data reusables.repositories.review-pr-commits %}
20-
3. Next to your commit's abbreviated commit hash, there is a box that shows whether your commit signature is verified or unverified.
20+
3. Next to your commit's abbreviated commit hash, there is a box that shows whether your commit signature is verified{% if currentVersion == "free-pro-team@latest" %}, partially verified,{% endif %} or unverified.
2121
![Signed commit](/assets/images/help/commits/gpg-signed-commit-verified-without-details.png)
22-
4. To view more detailed information about the commit signature, click **Verified** or **Unverified**.
22+
4. To view more detailed information about the commit signature, click **Verified**{% if currentVersion == "free-pro-team@latest" %}, **Partially verified**,{% endif %} or **Unverified**.
2323
![Verified signed commit](/assets/images/help/commits/gpg-signed-commit_verified_details.png)
2424

25-
If your commit signature is unverified, you can learn more about why by clicking the **Unverified** box.
26-
![Unverified signed commit](/assets/images/help/commits/gpg-signed-commit-unverified-details.png)
27-
2825
### Checking your tag signature verification status
2926

3027
{% data reusables.repositories.navigate-to-repo %}
3128
{% data reusables.repositories.releases %}
3229
2. At the top of the Releases page, click **Tags**.
3330
![Tags page](/assets/images/help/releases/tags-list.png)
34-
3. Next to your tag description, there is a box that shows whether your tag signature is verified or unverified.
31+
3. Next to your tag description, there is a box that shows whether your tag signature is verified{% if currentVersion == "free-pro-team@latest" %}, partially verified,{% endif %} or unverified.
3532
![verified tag signature](/assets/images/help/commits/gpg-signed-tag-verified.png)
36-
4. To view more detailed information about the tag signature, click **Verified** or **Unverified**. If your tag signature is unverified, you can learn more about why by clicking the **Unverified** box.
33+
4. To view more detailed information about the tag signature, click **Verified**{% if currentVersion == "free-pro-team@latest" %}, **Partially verified**,{% endif %} or **Unverified**.
3734
![Verified signed tag](/assets/images/help/commits/gpg-signed-tag-verified-details.png)
3835

3936
### Further reading
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: Displaying verification statuses for all of your commits
3+
shortTitle: Displaying verification for all commits
4+
intro: You can enable vigilant mode for commit signature verification to mark all of your commits and tags with a signature verification status.
5+
versions:
6+
free-pro-team: '*'
7+
topics:
8+
- identity
9+
- access management
10+
---
11+
12+
{% data reusables.identity-and-permissions.vigilant-mode-beta-note %}
13+
14+
### About vigilant mode
15+
16+
When you work locally on your computer, Git allows you to set the author of your changes and the identity of the committer. This, potentially, makes it difficult for other people to be confident that commits and tags you create were actually created by you. To help solve this problem you can sign your commits and tags. For more information, see "[Signing commits](/github/authenticating-to-github/signing-commits)" and "[Signing tags](/github/authenticating-to-github/signing-tags)." {% data variables.product.prodname_dotcom %} marks signed commits and tags with a verification status.
17+
18+
By default commits and tags are marked "Verified" if they are signed with a GPG or S/MIME key that was successfully verified. If a commit or tag has a signature that can't be verified, {% data variables.product.prodname_dotcom %} marks the commit or tag "Unverified." In all other cases no verification status is displayed.
19+
20+
However, you can give other users increased confidence in the identity attributed to your commits and tags by enabling vigilant mode in your {% data variables.product.prodname_dotcom %} settings. With vigilant mode enabled, all of your commits and tags are marked with one of three verification statuses.
21+
22+
![Signature verification statuses](/assets/images/help/commits/signature-verification-statuses.png)
23+
24+
{% data reusables.identity-and-permissions.vigilant-mode-verification-statuses %}
25+
26+
You should only enable vigilant mode if you sign all of your commits and tags. After enabling this mode, any unsigned commits or tags that you generate locally and push to {% data variables.product.prodname_dotcom %} will be marked "Unverified."
27+
28+
{% data reusables.identity-and-permissions.verification-status-check %}
29+
30+
### Enabling vigilant mode
31+
32+
{% data reusables.user_settings.access_settings %}
33+
{% data reusables.user_settings.ssh %}
34+
3. On the SSH Settings page, under "Vigilant mode," select **Flag unsigned commits as unverified**.
35+
36+
![Flag unsigned commits as unverified checkbox](/assets/images/help/commits/vigilant-mode-checkbox.png)

content/github/authenticating-to-github/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ topics:
8282
{% link_in_list /error-were-doing-an-ssh-key-audit %}
8383
{% topic_link_in_list /managing-commit-signature-verification %}
8484
{% link_in_list /about-commit-signature-verification %}
85+
{% link_in_list /displaying-verification-statuses-for-all-of-your-commits %}
8586
{% link_in_list /checking-for-existing-gpg-keys %}
8687
{% link_in_list /generating-a-new-gpg-key %}
8788
{% link_in_list /adding-a-new-gpg-key-to-your-github-account %}

0 commit comments

Comments
 (0)