mirror of
https://github.com/openziti/ziti.git
synced 2026-10-11 15:10:59 +00:00
build and publish linux package ziti-cli
This commit is contained in:
@@ -382,16 +382,18 @@ jobs:
|
||||
with:
|
||||
ziti-version: ${{ needs.publish.outputs.ZITI_VERSION }}
|
||||
|
||||
call-publish-linux-install-packages:
|
||||
# call on release-next and main branches to publish linux packages to
|
||||
# "testing" and "release" package repos in Artifactory
|
||||
call-publish-linux-packages:
|
||||
# always() re-enables evaluating conditionals in forks even if Windows or
|
||||
# macOS builds were skipped
|
||||
if: |
|
||||
always()
|
||||
&& needs.publish.result == 'success'
|
||||
&& github.ref == 'refs/heads/main'
|
||||
name: Publish Release Linux Install Packages
|
||||
&& (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release-next')
|
||||
name: Publish Release Linux Packages
|
||||
needs: publish
|
||||
uses: ./.github/workflows/publish-linux-install-packages.yml
|
||||
uses: ./.github/workflows/publish-linux-packages.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
ziti-version: ${{ needs.publish.outputs.ZITI_VERSION }}
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
name: Publish Linux Packages
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
ziti-version:
|
||||
description: generated by 'ziti-ci get-current-version'
|
||||
type: string
|
||||
required: true
|
||||
|
||||
# cancel older, redundant runs of same workflow on same branch
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
publish-linux-packages:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
package_name:
|
||||
- ziti-cli
|
||||
arch:
|
||||
- goreleaser: amd64
|
||||
gox: amd64
|
||||
deb: amd64
|
||||
rpm: x86_64
|
||||
- goreleaser: arm64
|
||||
gox: arm64
|
||||
deb: arm64
|
||||
rpm: aarch64
|
||||
- goreleaser: armv7
|
||||
gox: arm
|
||||
deb: armv7
|
||||
rpm: armv7
|
||||
nfpm_packager:
|
||||
- rpm
|
||||
- deb
|
||||
# - archlinux # (pacman)
|
||||
# - apk
|
||||
env:
|
||||
ZITI_VERSION: ${{ inputs.ziti-version || github.event.inputs.ziti-version }}
|
||||
ZITI_MAINTAINER: "OpenZiti Maintainers <developers@openziti.org>"
|
||||
ZITI_HOMEPAGE: "https://openziti.io"
|
||||
ZITI_VENDOR: "NetFoundry"
|
||||
GOARCH: ${{ matrix.arch.goreleaser }}
|
||||
steps:
|
||||
- name: Checkout Workspace
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download Linux Release Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: linux-release-${{ github.run_id }}
|
||||
path: release/
|
||||
|
||||
- name: Move Release Artifact for Architecture to Predictable Location for nfpm
|
||||
run: |
|
||||
mv -v ./release/${{ matrix.arch.gox }}/linux/ziti \
|
||||
./release/ziti
|
||||
|
||||
- name: Build Package
|
||||
id: nfpm
|
||||
uses: burningalchemist/action-gh-nfpm@v1
|
||||
# uses: netfoundry/action-gh-nfpm@main
|
||||
with:
|
||||
nfpm_version: "2.32.0"
|
||||
packager: ${{ matrix.nfpm_packager }}
|
||||
config: build/dist-packages/linux/nfpm-${{ matrix.package_name }}.yaml
|
||||
target: release/
|
||||
|
||||
- name: get the package name from the output
|
||||
run: echo ${{ steps.nfpm.outputs.package }}
|
||||
shell: bash
|
||||
|
||||
- run: ls -lh release/
|
||||
|
||||
- name: upload package artifact to build summary page
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.package_name }}-${{ matrix.arch.goreleaser }}-${{ matrix.nfpm_packager }}
|
||||
path: ./release/${{ matrix.package_name }}*.${{ matrix.nfpm_packager }}
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Configure jFrog CLI
|
||||
uses: jfrog/setup-jfrog-cli@v3
|
||||
env:
|
||||
JF_ENV_1: ${{ secrets.ZITI_ARTIFACTORY_CLI_CONFIG_PACKAGE_UPLOAD }}
|
||||
|
||||
- name: Upload RPM to Artifactory testing repo
|
||||
if: ${{ !github.event.release.published && matrix.nfpm_packager == 'rpm' }}
|
||||
run: >
|
||||
jf rt upload
|
||||
./release/${{ matrix.package_name }}*.${{ matrix.nfpm_packager }}
|
||||
/zitipax-openziti-rpm-stable/testing/${{ matrix.arch.rpm }}/
|
||||
--recursive=false
|
||||
--flat=true
|
||||
|
||||
- name: Upload RPM to Artifactory release repo
|
||||
if: ${{ github.event.release.published && matrix.nfpm_packager == 'rpm' }}
|
||||
run: >
|
||||
jf rt upload
|
||||
./release/${{ matrix.package_name }}*.${{ matrix.nfpm_packager }}
|
||||
/zitipax-openziti-rpm-stable/release/${{ matrix.arch.rpm }}/
|
||||
--recursive=false
|
||||
--flat=true
|
||||
|
||||
- name: Upload DEB to Artifactory testing repo
|
||||
if: ${{ !github.event.release.published && matrix.nfpm_packager == 'deb' }}
|
||||
run: >
|
||||
jf rt upload
|
||||
./release/${{ matrix.package_name }}*.${{ matrix.nfpm_packager }}
|
||||
/zitipax-openziti-deb-stable/pool/${{ matrix.package_name }}/testing/${{ matrix.arch.deb }}/
|
||||
--deb=testing/main/${{ matrix.arch.deb }}
|
||||
--recursive=false
|
||||
--flat=true
|
||||
|
||||
- name: Upload DEB to Artifactory release repo
|
||||
if: ${{ github.event.release.published && matrix.nfpm_packager == 'deb' }}
|
||||
run: >
|
||||
jf rt upload
|
||||
./release/${{ matrix.package_name }}*.${{ matrix.nfpm_packager }}
|
||||
/zitipax-openziti-deb-stable/pool/${{ matrix.package_name }}/release/${{ matrix.arch.deb }}/
|
||||
--deb=release/main/${{ matrix.arch.deb }}
|
||||
--recursive=false
|
||||
--flat=true
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
# nfpm-configs
|
||||
|
||||
These are `nfpm` configuration files. `nfpm` generates Linux packages, e.g.,
|
||||
RPM. These files references environment variables set in GitHub Actions workflow
|
||||
`.github/workflows/publish-linux-install-packages.yml`.
|
||||
@@ -0,0 +1,30 @@
|
||||
# nfpm configuration file
|
||||
#
|
||||
# check https://nfpm.goreleaser.com/configuration for detailed usage
|
||||
#
|
||||
name: ziti-cli
|
||||
arch: ${GOARCH}
|
||||
platform: linux
|
||||
version: ${ZITI_VERSION}
|
||||
maintainer: ${ZITI_MAINTAINER}
|
||||
description: >
|
||||
The ziti-cli package provides the ziti executable binary as a command line
|
||||
interface for Ziti.
|
||||
vendor: ${ZITI_VENDOR}
|
||||
homepage: ${ZITI_HOMEPAGE}
|
||||
license: Apache-2.0
|
||||
contents:
|
||||
- src: ./release/ziti
|
||||
dst: /opt/openziti/bin/ziti
|
||||
file_info:
|
||||
mode: 0755
|
||||
- src: /opt/openziti/bin/ziti
|
||||
dst: /usr/bin/ziti
|
||||
type: symlink
|
||||
|
||||
# packager-neutral scripts may be overriden by packager-specific scripts
|
||||
# scripts:
|
||||
# preinstall: ./scripts/preinstall.sh
|
||||
# postinstall: ./scripts/postinstall.sh
|
||||
# preremove: ./scripts/preremove.sh
|
||||
# postremove: ./scripts/postremove.sh
|
||||
Reference in New Issue
Block a user