Skip to content
This repository has been archived by the owner on Apr 24, 2024. It is now read-only.

Implement FreeBSD CI for build and release (#47) #33

Implement FreeBSD CI for build and release (#47)

Implement FreeBSD CI for build and release (#47) #33

Workflow file for this run

name: Release
on:
push:
tags: "*.*.*"
permissions:
contents: write
packages: write
id-token: write
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Generate release notes
uses: actions/github-script@v6
with:
script: |
const tag = context.ref.split('/').at(-1);
github.rest.repos.createRelease({
name: `Release ${tag}`,
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: tag,
generate_release_notes: true
})
build-binaries:
name: Build Binaries and Add Them to the Release
needs: create-release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- pi
- windows-latest
- macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Deno
if: matrix.os != 'pi'
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Set the OS name suffix
id: os-suffix
uses: actions/github-script@v6
with:
result-encoding: string
script: return "${{ runner.os }}".toLowerCase();
- name: Set the arch suffix
id: arch-suffix
uses: actions/github-script@v6
with:
result-encoding: string
script: return "${{ runner.arch }}".toLowerCase();
- name: Compile binary
run: deno compile --allow-net --allow-env=CONFIG_FILE,DEBUG,VERBOSE --allow-read --allow-write --output discord-irc-${{ steps.os-suffix.outputs.result }}-${{ steps.arch-suffix.outputs.result }} discord-irc.ts
- name: Compile ARM64 binary for macOS
if: runner.os == 'macOS'
run: deno compile --allow-net --allow-env=CONFIG_FILE,DEBUG,VERBOSE --allow-read --allow-write --output discord-irc-${{ steps.os-suffix.outputs.result }}-arm64 --target aarch64-apple-darwin discord-irc.ts
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
file: discord-irc-*
file_glob: true
build-freebsd:
name: Build FreeBSD Binary and Add it to the Release
runs-on: macos-12
needs: create-release
steps:
- uses: actions/checkout@v3
- name: Compile AMD64 binary for FreeBSD
uses: cross-platform-actions/[email protected]
with:
operating_system: freebsd
version: "13.2"
run: |
sudo pkg install -y git
sudo git clone --depth=1 https://git.FreeBSD.org/ports.git /usr/ports
sudo pkg install -y www/deno
deno task prepare
mv discord-irc discord-irc-freebsd-x64
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: FreeBSD-${{ runner.arch }}
path: ./discord-irc-*
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
file: discord-irc-*
file_glob: true