-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (113 loc) · 3.95 KB
/
build.yml
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Build if update is available
on:
push:
paths:
- '**.yml'
schedule:
- cron: '*/120 * * * *'
jobs:
build:
runs-on: windows-2019
steps:
- name: Get 'latest' tag from openssl/openssl repo
id: latest_tag
run: |
$url = "https://api.github.com/repos/openssl/openssl/releases/latest"
$response = Invoke-RestMethod -Uri $url -Method Get
$latest_tag = $response.tag_name
Write-Host $latest_tag
Write-Host "official_tag=$latest_tag" >> $env:GITHUB_ENV
echo "official_tag=$latest_tag" >> $env:GITHUB_ENV
shell: powershell
- name: Get 'latest' tag from zachariah-george/openssl repo
id: latest_tag_unofficial
run: |
$url = "https://api.github.com/repos/zachariah-george/openssl/releases/latest"
$response = Invoke-RestMethod -Uri $url -Method Get
$latest_tag_unofficial = $response.tag_name
Write-Host $latest_tag_unofficial
Write-Host "repo_tag=$latest_tag_unofficial" >> $env:GITHUB_ENV
echo "repo_tag=$latest_tag_unofficial" >> $env:GITHUB_ENV
shell: powershell
- if: env.repo_tag != env.official_tag
name: Clone OpenSSL repository
run: |
git clone git://git.openssl.org/openssl.git
# - if: env.repo_tag != env.official_tag
# name: Generate release notes
# id: generate_release_notes
# run: |
# cd openssl
# git fetch --all --tags
# release_notes=$(git log --pretty=format:"- %s ([%h](http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=%H))" ${{ env.repo_tag }}..${{ env.official_tag }})
# echo "release_notes=$release_notes" >> $GITHUB_ENV
# shell: bash
# - name: Compare tags
# id: compare_tags
# run: |
# echo "unofficial=$repo_tag"
# echo "official=$official_tag"
# shell: bash
- if: env.repo_tag != env.official_tag
name: Check Tags
run: echo "This repo is behind official."
- if: env.repo_tag != env.official_tag
name: Set up MSVC
uses: ilammy/msvc-dev-cmd@v1
# uses: TheMrMilchmann/setup-msvc-dev@v3.0.0
# with:
# arch: x64
- if: env.repo_tag != env.official_tag
name: Set up NASM
uses: ilammy/setup-nasm@v1
- if: env.repo_tag != env.official_tag
uses: actions/checkout@v4
with:
repository: openssl/openssl
ref: ${{ env.official_tag }}
- if: env.repo_tag != env.official_tag
name: Configure OpenSSL
run: |
perl Configure VC-WIN64A --prefix=C:\openssl
- if: env.repo_tag != env.official_tag
name: Build OpenSSL
run: |
nmake
nmake test
nmake install
- if: env.repo_tag != env.official_tag
name: Compress OpenSSL
run: |
Compress-Archive -Path C:\openssl -DestinationPath openssl.zip
- if: env.repo_tag != env.official_tag
name: Set release name
id: set_release_name
run: |
latest_version="${{ env.official_tag }}"
datetime=$(date +"%Y%m%d%H%M%S")
version_with_datetime="$latest_version-$datetime"
echo "::set-output name=release_name::$latest_version"
shell: bash
- if: env.repo_tag != env.official_tag
name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: '${{ env.official_tag }}'
release_name: ${{ env.official_tag }}
draft: false
prerelease: false
# body: ${{ env.release_notes }}
- if: env.repo_tag != env.official_tag
name: Upload release asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./openssl.zip
asset_name: openssl.zip
asset_content_type: application/zip