Sign macOS build #58
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: None | |
# SPDX-License-Identifier: CC0-1.0 | |
name: Release CI | |
on: | |
push: | |
tags: | |
- v*.*.* | |
env: | |
RELEASE_VERSION: $(echo $GITHUB_REF_NAME | cut -d'v' -f2) | |
DOTNET_VERSION: 8.0 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
runtime: [win-x64, win-x86, win-arm64, linux-x64, linux-musl-x64, linux-arm, linux-arm64, osx-x64, osx-arm64] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ env.DOTNET_VERSION }} | |
- name: Build tldr-sharp | |
run: | | |
dotnet publish -c Release --self-contained false -o 'publish/${{ matrix.runtime }}' -r '${{ matrix.runtime }}' | |
- name: Sign macOS build | |
if: ${{ startsWith(matrix.runtime, 'osx') }} | |
uses: indygreg/apple-code-sign-action@v1 | |
with: | |
input_path: publish/${{ matrix.runtime }}/tldr-sharp | |
p12_file: .github/assets/codesign.p12 | |
p12_password: ${{ secrets.codesign_password }} | |
- name: Cache Build | |
uses: actions/cache/save@v3 | |
with: | |
path: 'publish/${{ matrix.runtime }}' | |
key: ${{ runner.os }}-${{ github.sha }}-build-${{ matrix.runtime }} | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ env.DOTNET_VERSION }} | |
- name: Restore cached build | |
uses: actions/cache/restore@v3 | |
with: | |
path: publish/linux-x64 | |
key: ${{ runner.os }}-${{ github.sha }}-build-linux-x64 | |
- run: bash scripts/test.sh | |
create_setup: | |
runs-on: ubuntu-latest | |
needs: [build, test] | |
strategy: | |
matrix: | |
runtime: [win-x64, win-x86, win-arm64] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore cached build | |
uses: actions/cache/restore@v3 | |
with: | |
path: 'publish/${{ matrix.runtime }}' | |
key: ${{ runner.os }}-${{ github.sha }}-build-${{ matrix.runtime }} | |
- name: Copy build output | |
run: | | |
cp -r 'publish/${{ matrix.runtime }}' scripts/windows/release | |
- name: Download EnVar plugin for NSIS | |
uses: carlosperate/download-file-action@v2 | |
with: | |
file-url: https://nsis.sourceforge.io/mediawiki/images/7/7f/EnVar_plugin.zip | |
file-name: envar_plugin.zip | |
location: ${{ github.workspace }} | |
sha256: 39e94847ef0209c5cd93b735c3f560131c192a1136c96eddf643944e69c03b92 | |
- name: Extract EnVar plugin | |
run: unzip '${{ github.workspace }}/envar_plugin.zip' -d '${{ github.workspace }}/NSIS_Plugins' | |
- name: Install makensis | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y nsis nsis-pluginapi | |
- name: Set Plugin permissions | |
run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/ | |
- name: Set tldr-sharp version | |
run: sed -i "s/VERSION_PLACEHOLDER/${{ env.RELEASE_VERSION }}.0/g" 'scripts/windows/install.nsi' | |
- name: Create nsis installer | |
uses: joncloud/makensis-action@v4 | |
with: | |
script-file: scripts/windows/install.nsi | |
additional-plugin-paths: '${{ github.workspace }}/NSIS_Plugins/Plugins' | |
- name: Rename installer | |
run: | | |
mv 'scripts/windows/tldr-sharp_setup.exe' 'scripts/windows/tldr-sharp_${{ matrix.runtime }}.exe' | |
- name: Add to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: 'scripts/windows/tldr-sharp_${{ matrix.runtime }}.exe' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
create_deb: | |
runs-on: ubuntu-latest | |
needs: [build, test] | |
strategy: | |
matrix: | |
runtime: [linux-x64] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore cached build | |
uses: actions/cache/restore@v3 | |
with: | |
path: 'publish/${{ matrix.runtime }}' | |
key: ${{ runner.os }}-${{ github.sha }}-build-${{ matrix.runtime }} | |
- name: Prepare directory | |
run: | | |
pushd 'publish/${{ matrix.runtime }}' | |
find . -not -name '*.exe' -type f -exec install -Dm 644 '{}' '${{ github.workspace }}/.debpkg/usr/lib/tldr-sharp/{}' \; | |
find . -name '*.exe' -type f -exec install -Dm 755 '{}' '${{ github.workspace }}/.debpkg/usr/lib/tldr-sharp/{}' \; | |
popd | |
install -dm755 .debpkg/usr/bin | |
ln -s /usr/lib/tldr-sharp/tldr-sharp .debpkg/usr/bin/tldr-sharp | |
install -Dm644 scripts/debian/control .debpkg/DEBIAN/control | |
install -Dm755 scripts/debian/postinst .debpkg/DEBIAN/postinst | |
install -Dm755 scripts/debian/prerm .debpkg/DEBIAN/prerm | |
sed -i "s/VERSION_PLACEHOLDER/${{ env.RELEASE_VERSION }}/g" .debpkg/DEBIAN/control | |
- name: Build Debian package | |
run: fakeroot dpkg-deb --build .debpkg 'tldr-sharp_${{ matrix.runtime }}.deb' | |
- name: Add to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: tldr-sharp_${{ matrix.runtime }}.deb | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
create_archives: | |
runs-on: ubuntu-latest | |
needs: [build,test] | |
strategy: | |
matrix: | |
runtime: [win-x64, win-x86, win-arm64, linux-x64, linux-musl-x64, linux-arm, linux-arm64, osx-x64, osx-arm64] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore cached build | |
uses: actions/cache/restore@v3 | |
with: | |
path: 'publish/${{ matrix.runtime }}' | |
key: ${{ runner.os }}-${{ github.sha }}-build-${{ matrix.runtime }} | |
- name: Create tar archive | |
if: ${{ startsWith( matrix.runtime, 'linux') }} | |
run: tar czf tldr-sharp_${{ matrix.runtime }}.tar.gz -C 'publish/${{ matrix.runtime }}' . | |
- name: Create zip archive | |
if: ${{ !startsWith( matrix.runtime, 'linux') }} | |
run: | | |
pushd publish/${{ matrix.runtime }} | |
zip -r '${{ github.workspace }}/tldr-sharp_${{ matrix.runtime }}.zip' . | |
popd | |
- name: Add to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
tldr-sharp_${{ matrix.runtime }}.${{ startsWith( matrix.runtime, 'linux') && 'tar.gz' || 'zip' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |