# GitHub Actions workflow to create releases from tags. name: "Release" on: push: tags: [ "v*" ] workflow_dispatch: concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: false permissions: {} jobs: release: name: "Release" runs-on: "ubuntu-24.04" permissions: contents: write # Required to create release. steps: - name: "Checkout repository" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: "Generate version changelog" run: .github/scripts/changelog.sh "$VERSION" > release-changelog.txt env: VERSION: "${{ github.ref_name }}" - name: "Create draft GitHub release" env: GH_TOKEN: "${{ github.token }}" VERSION: "${{ github.ref_name }}" run: | gh release create "$VERSION" \ --repo "$GITHUB_REPOSITORY" \ --title "$VERSION" \ --notes-file release-changelog.txt \ --draft build-windows: name: "${{ matrix.os }}/${{ matrix.arch }}" runs-on: "${{ matrix.os }}" needs: ["release"] permissions: contents: write # Required to upload release assets. strategy: matrix: os: [ "windows-2022" ] arch: [ "Win32", "x64", "ARM64" ] steps: - name: "Checkout repository" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: "Setup MSYS2" uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 with: update: true install: >- autoconf automake diffutils libtool gcc git patch perl - name: "Run autogen" shell: msys2 {0} run: ./autogen.sh - name: "Configure" shell: pwsh env: ARCH: "${{ matrix.arch }}" run: cmake -Bbuild -G "Visual Studio 17 2022" -A "${env:ARCH}" -DCMAKE_INSTALL_PREFIX=local - name: "Build" shell: pwsh run: cmake --build build --config Release - name: "Install" shell: pwsh run: cmake --install build --config Release - name: "Package release artifact" shell: pwsh env: VERSION: "${{ github.ref_name }}" ARCH: "${{ matrix.arch }}" run: Compress-Archive -Path local\* "libressl_${env:VERSION}_windows_${env:ARCH}.zip" - name: "Upload release artifact" shell: bash env: GH_TOKEN: "${{ github.token }}" VERSION: "${{ github.ref_name }}" ARCH: "${{ matrix.arch }}" run: | gh release upload "$VERSION" \ --repo "$GITHUB_REPOSITORY" \ "libressl_${VERSION}_windows_${ARCH}.zip"