2024-06-06 21:59:10 +00:00
|
|
|
name: Build and Distribute
|
|
|
|
|
|
|
|
on:
|
2024-06-22 16:49:55 +00:00
|
|
|
pull_request_target:
|
|
|
|
types:
|
|
|
|
- ready_for_review
|
|
|
|
paths:
|
|
|
|
- '**'
|
|
|
|
- '!.github/'
|
2024-06-06 21:59:10 +00:00
|
|
|
pull_request:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
paths:
|
|
|
|
- "**"
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
concurrency:
|
|
|
|
group: ${{ github.head_ref || github.ref }}
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
excludes:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
outputs:
|
|
|
|
deb: ${{ steps.deb.outputs.excludes }}
|
|
|
|
steps:
|
|
|
|
- id: deb
|
|
|
|
name: Generate Matrix excludes for DEB
|
|
|
|
run: |
|
|
|
|
JSON="[]"
|
|
|
|
|
2024-06-22 16:49:55 +00:00
|
|
|
if [[ "${{ github.event_name }}" == "pull_request" || "${{ github.event_name }}" == "pull_request_target" ]]; then
|
2024-06-06 21:59:10 +00:00
|
|
|
JSON=$(jq -n '[
|
|
|
|
{
|
|
|
|
"version": "bookworm",
|
|
|
|
"platform": {
|
|
|
|
"name": "amd64"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"version": "bookworm",
|
|
|
|
"platform": {
|
|
|
|
"name": "arm64v8"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"version": "bullseye"
|
|
|
|
}
|
|
|
|
]')
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "excludes=$(echo $JSON | jq -c .)" | tee -a $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
deb:
|
|
|
|
name: 'DEB'
|
|
|
|
permissions:
|
|
|
|
id-token: write
|
|
|
|
contents: read
|
|
|
|
needs:
|
|
|
|
- excludes
|
|
|
|
uses: signalwire/actions-template/.github/workflows/cicd-docker-build-and-distribute.yml@main
|
|
|
|
strategy:
|
|
|
|
# max-parallel: 1
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- debian
|
|
|
|
version:
|
|
|
|
- bookworm
|
|
|
|
- bullseye
|
|
|
|
- buster
|
|
|
|
platform:
|
|
|
|
- name: amd64
|
|
|
|
runner: ubuntu-latest
|
|
|
|
- name: arm32v7
|
|
|
|
runner: linux-arm64-4-core-public
|
|
|
|
- name: arm64v8
|
|
|
|
runner: linux-arm64-4-core-public
|
|
|
|
exclude: ${{ fromJson(needs.excludes.outputs.deb) }}
|
|
|
|
with:
|
|
|
|
RUNNER: ${{ matrix.platform.runner }}
|
|
|
|
ARTIFACTS_PATTERN: '.*\.(deb|dsc|changes|tar.bz2|tar.gz|tar.lzma|tar.xz)$'
|
|
|
|
DOCKERFILE: .github/docker/${{ matrix.os }}/${{ matrix.version }}/${{ matrix.platform.name }}/Dockerfile
|
|
|
|
MAINTAINER: 'Andrey Volk <andrey@signalwire.com>'
|
|
|
|
META_FILE_PATH_PREFIX: /var/www/freeswitch/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}
|
|
|
|
PLATFORM: ${{ matrix.platform.name }}
|
|
|
|
REPO_DOMAIN: freeswitch.signalwire.com
|
|
|
|
TARGET_ARTIFACT_NAME: ${{ matrix.os }}-${{ matrix.version }}-${{ matrix.platform.name }}-artifact
|
|
|
|
UPLOAD_BUILD_ARTIFACTS: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.title, ':upload-artifacts') }}
|
|
|
|
secrets:
|
|
|
|
GH_BOT_DEPLOY_TOKEN: ${{ secrets.PAT }}
|
|
|
|
HOSTNAME: ${{ secrets.HOSTNAME }}
|
|
|
|
PROXY_URL: ${{ secrets.PROXY_URL }}
|
|
|
|
USERNAME: ${{ secrets.USERNAME }}
|
|
|
|
TELEPORT_TOKEN: ${{ secrets.TELEPORT_TOKEN }}
|
|
|
|
REPO_USERNAME: 'signalwire'
|
|
|
|
REPO_PASSWORD: ${{ secrets.REPOTOKEN }}
|
|
|
|
|
|
|
|
meta:
|
|
|
|
name: 'Publish build data to meta-repo'
|
|
|
|
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.title, ':upload-artifacts') }}
|
|
|
|
needs:
|
|
|
|
- deb
|
|
|
|
permissions:
|
|
|
|
id-token: write
|
|
|
|
contents: read
|
|
|
|
uses: signalwire/actions-template/.github/workflows/meta-repo-content.yml@main
|
|
|
|
with:
|
|
|
|
META_CONTENT: '/var/www/freeswitch/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}'
|
|
|
|
META_REPO: signalwire/bamboo_gha_trigger
|
|
|
|
META_REPO_BRANCH: trigger/freeswitch/${{ github.ref_name }}
|
|
|
|
secrets:
|
|
|
|
GH_BOT_DEPLOY_TOKEN: ${{ secrets.PAT }}
|