From 977acec32bf164538add373672516e82df54bc3f Mon Sep 17 00:00:00 2001 From: "Matthew R. Kasun" Date: Fri, 11 Mar 2022 09:08:41 -0500 Subject: [PATCH] seperate jobs --- .github/workflows/buildandrelease.yml | 460 ++++++++++++++++---------- 1 file changed, 287 insertions(+), 173 deletions(-) diff --git a/.github/workflows/buildandrelease.yml b/.github/workflows/buildandrelease.yml index f9315e04..5a880b42 100644 --- a/.github/workflows/buildandrelease.yml +++ b/.github/workflows/buildandrelease.yml @@ -10,8 +10,11 @@ on: types: [published] jobs: - build: + set-version: runs-on: ubuntu-latest + outputs: + tag: ${{ steps.echo.outputs.tag }} + version: ${{ steps.echo.outputs.version }} steps: - name: Get Version Number run: | @@ -28,51 +31,67 @@ jobs: run: | echo ${{ env.NETMAKER_VERSION }} echo ${{ env.PACKAGE_VERSION }} - if [ -z ${{ env.NETMAKER_VERSION }} ] - then - exit 1 - fi - if [ -z ${{ env.PACKAGE_VERSION }} ] + if [ -z ${{ env.NETMAKER_VERSION }} || -z ${{ env.PACKAGE_VERSION }} ] then exit 1 fi + echo "::set-output name=tag::${{ env.NETMAKER_VERSION }}" + echo "::set-output name=version::${{ env.PACKAGE_VERSION }}" + netmaker: + runs-on: ubuntu-latest + needs: set-version + steps: - name: Checkout uses: actions/checkout@v2 - + - name: set variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV - name: Setup go uses: actions/setup-go@v2 with: go-version: 1.17 + - name: Build + run: | + env CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netmaker main.go + - name: Upload netmaker x86 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: build/netmaker + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netmaker + netclient-x86: + runs-on: ubuntu-latest + needs: set-version + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set Variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV + - name: Setup go + uses: actions/setup-go@v2 + with: + go-version: 1.17 - name: Build run: | - env CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netmaker main.go cd netclient env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient main.go - env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm5/netclient main.go - env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm6/netclient main.go - env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm7/netclient main.go - env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm64/netclient main.go - env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -X 'main.version=$NETMAKER_VERSION'" -o build/netclient-mipsle/netclient main.go && upx build/netclient-mipsle/netclient - env CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags="-X 'main.Version=${NETMAKER_VERSION}'" -o build/netclient-freebsd/netclient main.go - env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm5/netclient main.go - env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm6/netclient main.go - env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm7/netclient main.go - env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm64/netclient main.go - env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-darwin/netclient main.go - env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-darwin-arm64/netclient main.go - - - name: Upload netmaker x86 to Release - continue-on-error: true - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: build/netmaker - tag: ${{ env.NETMAKER_VERSION }} - overwrite: true - prerelease: true - asset_name: netmaker - - name: Upload netclient x86 to Release continue-on-error: true uses: svenstaro/upload-release-action@v2 @@ -136,160 +155,255 @@ jobs: prerelease: true asset_name: netclient_${{ env.PACKAGE_VERSION }}_x86_64.pkg.tar.zst - #- name: Upload arm5 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-arm5/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-arm5 + netclient-arm: + runs-on: ubuntu-latest + needs: set-version + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set Variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV + - name: Setup go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Build + run: | + cd netclient + env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm5/netclient main.go + env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm6/netclient main.go + env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm7/netclient main.go + env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-arm64/netclient main.go + - name: Upload arm5 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-arm5/netclientenv + tag: ${{ env.NETMAKER_VERSION }}env CGO_ENABLED=0 + overwrite: true env + prerelease: true + asset_name: netclient-arm5 - #- name: Upload arm6 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-arm6/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-arm6 + - name: Upload arm6 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-arm6/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-arm6 + - name: Upload arm7 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-arm7/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-arm7 + + - name: Upload arm64 to Release + continue-on-error: true + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-arm64/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-arm64 + - name: Package arm64 deb + continue-on-error: true + uses: gravitl/github-action-fpm@master + with: + fpm_args: './netclient/build/netclient-arm64/netclient=/sbin/netclient ./netclient/build/netclient.service=/lib/systemd/netclient.service' + fpm_opts: '-s dir -t deb --architecture arm64 --version ${{ env.PACKAGE_VERSION }}' + - name: Upload arm deb to Release + continue-on-error: true + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient_${{ env.PACKAGE_VERSION }}_arm64.deb + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient_${{ env.PACKAGE_VERSION }}_arm64.deb + - name: Package arm64 rpm + continue-on-error: true + uses: gravitl/github-action-fpm@master + with: + fpm_args: './netclient/build/netclient-arm64/netclient=/sbin/netclient ./netclient/build/netclient.service=/lib/systemd/netclient.service' + fpm_opts: '-s dir -t rpm --architecture arm64 --version ${{ env.PACKAGE_VERSION }}' + - name: Upload arm64 rpm to Release + continue-on-error: true + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient-${{ env.PACKAGE_VERSION }}-1.aarch64.rpm + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-${{ env.PACKAGE_VERSION }}-1.aarch4.rpm - #- name: Upload arm7 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-arm7/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-arm7 + netclient-mipsle: + runs-on: ubuntu-latest + needs: set-version + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set Variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV + - name: Setup go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Build + run: | + cd netclient + env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -X 'main.version=$NETMAKER_VERSION'" -o build/netclient-mipsle/netclient main.go && upx build/netclient-mipsle/netclient + - name: Upload mipsle to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-mipsle/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-mipsle + + netclient-freebsd: + runs-on: ubuntu-latest + needs: set-version + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set Variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV + - name: Setup go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Build + run: | + cd netclient + env CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags="-X 'main.Version=${NETMAKER_VERSION}'" -o build/netclient-freebsd/netclient main.go + env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm5/netclient main.go + env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm6/netclient main.go + env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm7/netclient main.go + env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm64/netclient main.go - - name: Upload arm64 to Release - continue-on-error: true + - name: Upload freebsd to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-freebsd/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-freebsd + + - name: Upload freebsd-arm5 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-freebsd-arm5/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-freebsd-arm5 + + - name: Upload freebsd-arm6 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-freebsd-arm6/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-freebsd-arm6 + + - name: Upload freebsd-arm7 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-freebsd-arm7/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-freebsd-arm7 + + - name: Upload freebsd-arm64 to Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: netclient/build/netclient-freebsd-arm64/netclient + tag: ${{ env.NETMAKER_VERSION }} + overwrite: true + prerelease: true + asset_name: netclient-freebsd-arm64 + + netclient-darwin: + runs-on: ubuntu-latest + needs: set-version + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set Variables + run: | + TAG=${{needs.set-version.outputs.tag}} + VERSION=${{needs.set-version.outputs.version}} + if [ -n ${VERSION} || -n ${TAG} ]; then + exit 1 + fi + echo "$NETMAKER_VERSION=${TAG}" >> $GITHUB_ENV + echo "$PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV + - name: Setup go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + - name: Build + run: | + cd netclient + env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-darwin/netclient main.go + env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-darwin-arm64/netclient main.go + - name: Upload darwin-arm64 to Release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: netclient/build/netclient-arm64/netclient + file: netclient/build/netclient-darwin/netclient tag: ${{ env.NETMAKER_VERSION }} overwrite: true prerelease: true - asset_name: netclient-arm64 + asset_name: netclient-darwin - - name: Package arm64 deb - continue-on-error: true - uses: gravitl/github-action-fpm@master - with: - fpm_args: './netclient/build/netclient-arm64/netclient=/sbin/netclient ./netclient/build/netclient.service=/lib/systemd/netclient.service' - fpm_opts: '-s dir -t deb --architecture arm64 --version ${{ env.PACKAGE_VERSION }}' - - name: Upload arm deb to Release - continue-on-error: true + - name: Upload darwin-arm64 to Release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: netclient_${{ env.PACKAGE_VERSION }}_arm64.deb + file: netclient/build/netclient-darwin-arm64/netclient tag: ${{ env.NETMAKER_VERSION }} overwrite: true prerelease: true - asset_name: netclient_${{ env.PACKAGE_VERSION }}_arm64.deb - - - name: Package arm64 rpm - continue-on-error: true - uses: gravitl/github-action-fpm@master - with: - fpm_args: './netclient/build/netclient-arm64/netclient=/sbin/netclient ./netclient/build/netclient.service=/lib/systemd/netclient.service' - fpm_opts: '-s dir -t rpm --architecture arm64 --version ${{ env.PACKAGE_VERSION }}' - - name: Upload arm64 rpm to Release - continue-on-error: true - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: netclient-${{ env.PACKAGE_VERSION }}-1.aarch64.rpm - tag: ${{ env.NETMAKER_VERSION }} - overwrite: true - prerelease: true - asset_name: netclient-${{ env.PACKAGE_VERSION }}-1.aarch4.rpm - - - #- name: Upload mipsle to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-mipsle/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-mipsle - - #- name: Upload freebsd to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-freebsd/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-freebsd - # - #- name: Upload freebsd-arm5 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-freebsd-arm5/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-freebsd-arm5 - # - #- name: Upload freebsd-arm6 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-freebsd-arm6/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-freebsd-arm6 - # - #- name: Upload freebsd-arm7 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-freebsd-arm7/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-freebsd-arm7 - # - #- name: Upload freebsd-arm64 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-freebsd-arm64/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-freebsd-arm64 - # - #- name: Upload darwin to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-darwin/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-darwin - - #- name: Upload darwin-arm64 to Release - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: netclient/build/netclient-darwin-arm64/netclient - # tag: ${{ env.NETMAKER_VERSION }} - # overwrite: true - # prerelease: true - # asset_name: netclient-darwin-arm64 - - + asset_name: netclient-darwin-arm64