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

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

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

permissions:
  contents: write

jobs:
  release:
    name: "Release"
    runs-on: "ubuntu-24.04"
    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@v2
        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\* "libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip"

      - name: "Upload release artifact"
        uses: softprops/action-gh-release@v2
        with:
          files: |
            libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip