mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-09 16:20:26 +00:00
Build packages in GitHub Actions
This commit is contained in:
parent
073799d3de
commit
bc78530fcb
132
.github/workflows/ci.yml
vendored
132
.github/workflows/ci.yml
vendored
@ -102,3 +102,135 @@ jobs:
|
|||||||
uses: re-actors/alls-green@release/v1
|
uses: re-actors/alls-green@release/v1
|
||||||
with:
|
with:
|
||||||
jobs: ${{ toJSON(needs) }}
|
jobs: ${{ toJSON(needs) }}
|
||||||
|
|
||||||
|
build-packages-debian:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
pkgarch: ["amd64", "i386", "mips", "mipsel", "armhf", "armel", "arm64"]
|
||||||
|
|
||||||
|
name: Create Package (Debian, ${{ matrix.pkgarch }})
|
||||||
|
needs: [tests-ok]
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: 1.18
|
||||||
|
|
||||||
|
- name: Build package
|
||||||
|
env:
|
||||||
|
PKGARCH: ${{ matrix.pkgarch }}
|
||||||
|
run: sh contrib/deb/generate.sh
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: Debian package (${{ matrix.pkgarch }})
|
||||||
|
path: "*.deb"
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-packages-macos:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
pkgarch: ["amd64", "arm64"]
|
||||||
|
|
||||||
|
name: Create Package (macOS, ${{ matrix.pkgarch }})
|
||||||
|
needs: [tests-ok]
|
||||||
|
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: 1.18
|
||||||
|
|
||||||
|
- name: Build package
|
||||||
|
env:
|
||||||
|
PKGARCH: ${{ matrix.pkgarch }}
|
||||||
|
run: sh contrib/macos/create-pkg.sh
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: macOS package (${{ matrix.pkgarch }})
|
||||||
|
path: "*.pkg"
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-packages-windows:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
pkgarch: ["x64", "x86", "arm", "arm64"]
|
||||||
|
|
||||||
|
name: Create Package (Windows, ${{ matrix.pkgarch }})
|
||||||
|
needs: [tests-ok]
|
||||||
|
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: 1.18
|
||||||
|
|
||||||
|
- name: Build package
|
||||||
|
run: sh contrib/msi/build-msi.sh ${{ matrix.pkgarch }}
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: Windows package (${{ matrix.pkgarch }})
|
||||||
|
path: "*.msi"
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-packages-router:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
pkgarch: ["edgerouter-x", "edgerouter-lite", "vyos-amd64", "vyos-i386"]
|
||||||
|
|
||||||
|
name: Create Package (Router, ${{ matrix.pkgarch }})
|
||||||
|
needs: [tests-ok]
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
path: yggdrasil
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: neilalexander/vyatta-yggdrasil
|
||||||
|
path: vyatta-yggdrasil
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: 1.18
|
||||||
|
|
||||||
|
- name: Build package
|
||||||
|
env:
|
||||||
|
BUILDDIR_YGG: /home/runner/work/yggdrasil-go/yggdrasil-go/yggdrasil
|
||||||
|
run: cd /home/runner/work/yggdrasil-go/yggdrasil-go/vyatta-yggdrasil && ./build-${{ matrix.pkgarch }}
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: Router package (${{ matrix.pkgarch }})
|
||||||
|
path: "/home/runner/work/yggdrasil-go/yggdrasil-go/vyatta-yggdrasil/*.deb"
|
||||||
|
if-no-files-found: error
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# This script generates an MSI file for Yggdrasil for a given architecture. It
|
# This script generates an MSI file for Yggdrasil for a given architecture. It
|
||||||
# needs to run on Windows within MSYS2 and Go 1.13 or later must be installed on
|
# needs to run on Windows within MSYS2 and Go 1.17 or later must be installed on
|
||||||
# the system and within the PATH. This is ran currently by Appveyor (see
|
# the system and within the PATH. This is ran currently by GitHub Actions (see
|
||||||
# appveyor.yml in the repository root) for both x86 and x64.
|
# the workflows in the repository).
|
||||||
#
|
#
|
||||||
# Author: Neil Alexander <neilalexander@users.noreply.github.com>
|
# Author: Neil Alexander <neilalexander@users.noreply.github.com>
|
||||||
|
|
||||||
@ -11,37 +11,21 @@
|
|||||||
PKGARCH=$1
|
PKGARCH=$1
|
||||||
if [ "${PKGARCH}" == "" ];
|
if [ "${PKGARCH}" == "" ];
|
||||||
then
|
then
|
||||||
echo "tell me the architecture: x86, x64 or arm"
|
echo "tell me the architecture: x86, x64, arm or arm64"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the rest of the repository history. This is needed within Appveyor because
|
|
||||||
# otherwise we don't get all of the branch histories and therefore the semver
|
|
||||||
# scripts don't work properly.
|
|
||||||
if [ "${APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH}" != "" ];
|
|
||||||
then
|
|
||||||
git fetch --all
|
|
||||||
# git checkout ${APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH}
|
|
||||||
elif [ "${APPVEYOR_REPO_BRANCH}" != "" ];
|
|
||||||
then
|
|
||||||
git fetch --all
|
|
||||||
git checkout ${APPVEYOR_REPO_BRANCH}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install prerequisites within MSYS2
|
|
||||||
pacman -S --needed --noconfirm unzip git curl
|
|
||||||
|
|
||||||
# Download the wix tools!
|
# Download the wix tools!
|
||||||
if [ ! -d wixbin ];
|
if [ ! -d wixbin ];
|
||||||
then
|
then
|
||||||
curl -LO https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip
|
curl -LO https://wixtoolset.org/downloads/v3.14.0.3910/wix314-binaries.zip
|
||||||
if [ `md5sum wix311-binaries.zip | cut -f 1 -d " "` != "47a506f8ab6666ee3cc502fb07d0ee2a" ];
|
if [ `md5sum wix314-binaries.zip | cut -f 1 -d " "` != "34f655cf108086838dd5a76d4318063b" ];
|
||||||
then
|
then
|
||||||
echo "wix package didn't match expected checksum"
|
echo "wix package didn't match expected checksum"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
mkdir -p wixbin
|
mkdir -p wixbin
|
||||||
unzip -o wix311-binaries.zip -d wixbin || (
|
unzip -o wix314-binaries.zip -d wixbin || (
|
||||||
echo "failed to unzip WiX"
|
echo "failed to unzip WiX"
|
||||||
exit 1
|
exit 1
|
||||||
)
|
)
|
||||||
@ -51,7 +35,7 @@ fi
|
|||||||
[ "${PKGARCH}" == "x64" ] && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./build
|
[ "${PKGARCH}" == "x64" ] && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./build
|
||||||
[ "${PKGARCH}" == "x86" ] && GOOS=windows GOARCH=386 CGO_ENABLED=0 ./build
|
[ "${PKGARCH}" == "x86" ] && GOOS=windows GOARCH=386 CGO_ENABLED=0 ./build
|
||||||
[ "${PKGARCH}" == "arm" ] && GOOS=windows GOARCH=arm CGO_ENABLED=0 ./build
|
[ "${PKGARCH}" == "arm" ] && GOOS=windows GOARCH=arm CGO_ENABLED=0 ./build
|
||||||
#[ "${PKGARCH}" == "arm64" ] && GOOS=windows GOARCH=arm64 CGO_ENABLED=0 ./build
|
[ "${PKGARCH}" == "arm64" ] && GOOS=windows GOARCH=arm64 CGO_ENABLED=0 ./build
|
||||||
|
|
||||||
# Create the postinstall script
|
# Create the postinstall script
|
||||||
cat > updateconfig.bat << EOF
|
cat > updateconfig.bat << EOF
|
||||||
@ -69,7 +53,7 @@ EOF
|
|||||||
PKGNAME=$(sh contrib/semver/name.sh)
|
PKGNAME=$(sh contrib/semver/name.sh)
|
||||||
PKGVERSION=$(sh contrib/msi/msversion.sh --bare)
|
PKGVERSION=$(sh contrib/msi/msversion.sh --bare)
|
||||||
PKGVERSIONMS=$(echo $PKGVERSION | tr - .)
|
PKGVERSIONMS=$(echo $PKGVERSION | tr - .)
|
||||||
[ "${PKGARCH}" == "x64" ] && \
|
([ "${PKGARCH}" == "x64" ] || [ "${PKGARCH}" == "arm64" ]) && \
|
||||||
PKGGUID="77757838-1a23-40a5-a720-c3b43e0260cc" PKGINSTFOLDER="ProgramFiles64Folder" || \
|
PKGGUID="77757838-1a23-40a5-a720-c3b43e0260cc" PKGINSTFOLDER="ProgramFiles64Folder" || \
|
||||||
PKGGUID="54a3294e-a441-4322-aefb-3bb40dd022bb" PKGINSTFOLDER="ProgramFilesFolder"
|
PKGGUID="54a3294e-a441-4322-aefb-3bb40dd022bb" PKGINSTFOLDER="ProgramFilesFolder"
|
||||||
|
|
||||||
@ -85,8 +69,8 @@ elif [ $PKGARCH = "x86" ]; then
|
|||||||
PKGWINTUNDLL=wintun/bin/x86/wintun.dll
|
PKGWINTUNDLL=wintun/bin/x86/wintun.dll
|
||||||
elif [ $PKGARCH = "arm" ]; then
|
elif [ $PKGARCH = "arm" ]; then
|
||||||
PKGWINTUNDLL=wintun/bin/arm/wintun.dll
|
PKGWINTUNDLL=wintun/bin/arm/wintun.dll
|
||||||
#elif [ $PKGARCH = "arm64" ]; then
|
elif [ $PKGARCH = "arm64" ]; then
|
||||||
# PKGWINTUNDLL=wintun/bin/arm64/wintun.dll
|
PKGWINTUNDLL=wintun/bin/arm64/wintun.dll
|
||||||
else
|
else
|
||||||
echo "wasn't sure which architecture to get wintun for"
|
echo "wasn't sure which architecture to get wintun for"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Get the current branch name
|
# Get the current branch name
|
||||||
|
BRANCH="$GITHUB_REF_NAME"
|
||||||
|
if [ -z "$BRANCH" ]; then
|
||||||
BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
|
BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$APPVEYOR_PULL_REQUEST_NUMBER" ]; then
|
if [ $? != 0 ] || [ -z "$BRANCH" ]; then
|
||||||
printf "yggdrasil-pr%s" "$APPVEYOR_PULL_REQUEST_NUMBER"
|
|
||||||
exit 0
|
|
||||||
# Complain if the git history is not available
|
|
||||||
elif [ $? != 0 ] || [ -z "$BRANCH" ]; then
|
|
||||||
printf "yggdrasil"
|
printf "yggdrasil"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user