aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
blob: a146f5c2023716c78fc61823aa5a58f9935b8cc8 (plain)
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
# GitHub Actions workflow to create releases from tags.
name: "Release"

on:
  push:
    tags: [ "v*" ]

concurrency:
  group: "${{ github.workflow }}-${{ github.ref }}"
  cancel-in-progress: true

permissions:
  contents: write

jobs:
  release:
    name: "Release"
    runs-on: "ubuntu-latest"
    outputs:
      upload_url: "${{ steps.create_release.outputs.upload_url }}"
    steps:
      - name: "Checkout repository"
        uses: actions/checkout@v4

      - name: "Generate version changelog"
        run: .github/scripts/changelog.sh "$VERSION" > release-changelog.txt
        env:
          VERSION: "${{ github.ref_name }}"

      - name: "Create GitHub release"
        id: create_release
        uses: softprops/action-gh-release@v1
        with:
          body_path: "${{ github.workspace }}/release-changelog.txt"

  build-windows:
    name: "${{ matrix.os }}/${{ matrix.arch }}"
    runs-on: "${{ matrix.os }}"
    needs: ["release"]
    strategy:
      matrix:
        os: [ "windows-2022" ]
        arch: [ "Win32", "x64", "ARM64" ]
    steps:
      - name: "Checkout repository"
        uses: actions/checkout@v4

      - name: "Setup MSYS2"
        uses: msys2/setup-msys2@v2
        with:
          update: true
          install: >-
            autoconf
            automake
            diffutils
            libtool
            gcc
            git
            patch
            perl

      - shell: msys2 {0}
        run: ./autogen.sh

      - shell: cmd
        run: cmake -Bbuild -G "Visual Studio 17 2022" -A ${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=local

      - shell: cmd
        run: cmake --build build --config Release

      - shell: cmd
        run: cmake --install build --config Release

      - shell: pwsh
        run: Compress-Archive -Path local\* local.zip

      - name: "Upload release artifact"
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: "${{ github.token }}"
        with:
          upload_url: "${{ needs.release.outputs.upload_url }}"
          asset_path: "local.zip"
          asset_name: "libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip"
          asset_content_type: "application/zip"