This repository was archived by the owner on Nov 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
52 lines (49 loc) · 2.52 KB
/
release.yml
File metadata and controls
52 lines (49 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# ref https://github.com/microsoft/setup-msbuild
name: Release
on:
push:
branches:
- 'master' # to run beta release
tags:
- 'v*' # only v* tag trigger release.yml
jobs:
build_and_release:
runs-on: windows-2019
env:
CODE_SIGNING_CERTIFICATE: 'BuffettCode.pfx'
CODE_SIGNING_CERTIFICATE_S3_URI: ${{ secrets.S3_CODE_SIGNING_PFX_URI }}
CODE_SIGNING_CERTIFICATE_LOCAL: .\Certificates\BuffettCode.pfx
CERTIFICATE_PASSWORD: ${{ secrets.CODE_SIGNING_PFX_PASS }}
INSTALLER_FOLDER: .\BuffettCodeExcelAddin32Installer\bin\Release
INSTALLER_EXE_NAME: BuffettCodeExcelAddin32Installer.exe
S3_BUCKET: ${{ secrets.S3_INSTALLER_BUCKET }}
GIT_TAG: ${{ github.ref }}
steps:
- uses: actions/checkout@v1
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: Setup VSTest Path
uses: darenm/Setup-VSTest@v1
- 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: ap-northeast-1
- name: Setup code signing certificate
run:
.\scripts\setup_code_signing_certificate.ps1 "$env:CODE_SIGNING_CERTIFICATE_S3_URI" "$env:CODE_SIGNING_CERTIFICATE_LOCAL" "$env:CERTIFICATE_PASSWORD" "{{ env.INSTALLER_FOLDER }}\{{ $env.INSTALLER_EXE_NAME }}"
- name: Install dependencies
run: .\scripts\install_dependencies.ps1
- name: Run MSBuild using code signing certificate
run: MSBuild BuffettCode.sln /p:Configuration=Release /p:ManifestKeyFile="$env:CODE_SIGNING_CERTIFICATE" /p:ManifestCertificateThumbprint=${{ secrets.MANIFEST_CERTIFICATE_THUMBPRINT }}
- name: Run VSTest using Test API Token
run: .\scripts\run_all_tests.ps1
- name: Sign the built installer using signing certificate
run: ./scripts/sign_installer_for_release.ps1 "$env:CODE_SIGNING_CERTIFICATE_LOCAL" "$env:CERTIFICATE_PASSWORD" .\Certificates\AAACertificateServices.crt "${{ env.INSTALLER_FOLDER }}\${{ env.INSTALLER_EXE_NAME }}"
- if: ${{ github.ref == 'refs/heads/master' }}
name: Beta Release
run: .\scripts\upload_new_installer.ps1 "$env:INSTALLER_FOLDER" "$env:S3_BUCKET" "beta/latest"
- if: ${{ startsWith(github.ref, 'refs/tags/') }}
name: Release By tags
run: .\scripts\upload_new_installer.ps1 "$env:INSTALLER_FOLDER" "$env:S3_BUCKET" "$env:GIT_TAG".Replace('refs/tags', 'release')