Merge pull request #2622 from signalwire/unittests #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Distribute | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- v1.10 | |
paths: | |
- "**" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.head_ref || github.ref }} | |
jobs: | |
preconfig: | |
runs-on: ubuntu-latest | |
outputs: | |
deb: ${{ steps.deb.outputs.excludes }} | |
release: ${{ steps.release.outputs.release }} | |
steps: | |
- name: Generate Matrix excludes for DEB | |
id: deb | |
run: | | |
JSON="[]" | |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then | |
JSON=$(jq -n '[ | |
{ | |
"version": "bookworm", | |
"platform": { | |
"name": "arm64v8" | |
} | |
}, | |
{ | |
"version": "bullseye", | |
"platform": { | |
"name": "amd64" | |
} | |
}, | |
{ | |
"version": "bullseye", | |
"platform": { | |
"name": "arm32v7" | |
} | |
} | |
]') | |
fi | |
echo "excludes=$(echo $JSON | jq -c .)" | tee -a $GITHUB_OUTPUT | |
- name: Get release type based on branch | |
id: release | |
run: | | |
if [[ '${{ github.event_name }}' == 'pull_request' ]]; then | |
if [[ '${{ github.base_ref }}' == 'master' ]]; then | |
echo 'release=unstable' | tee -a $GITHUB_OUTPUT | |
elif [[ '${{ github.base_ref }}' == 'v1.10' ]]; then | |
echo 'release=release' | tee -a $GITHUB_OUTPUT | |
fi | |
elif [[ '${{ github.ref }}' == 'refs/heads/master' ]]; then | |
echo 'release=unstable' | tee -a $GITHUB_OUTPUT | |
elif [[ '${{ github.ref }}' == 'refs/heads/v1.10' ]]; then | |
echo 'release=release' | tee -a $GITHUB_OUTPUT | |
else | |
exit 1 | |
fi | |
deb-public: | |
name: 'DEB-PUBLIC' | |
permissions: | |
id-token: write | |
contents: read | |
needs: | |
- preconfig | |
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 | |
platform: | |
- name: amd64 | |
runner: ubuntu-latest | |
- name: arm32v7 | |
runner: linux-arm64-4-core-public | |
- name: arm64v8 | |
runner: linux-arm64-4-core-public | |
release: | |
- ${{ needs.preconfig.outputs.release }} | |
exclude: ${{ fromJson(needs.preconfig.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 }}/public.${{ matrix.release }}.Dockerfile | |
MAINTAINER: 'Andrey Volk <andrey@signalwire.com>' | |
META_FILE_PATH_PREFIX: /var/www/freeswitch/public/${{ matrix.release }}/${{ 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 }}-public-${{ matrix.release }}-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: 'SWUSERNAME' | |
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-public | |
permissions: | |
id-token: write | |
contents: read | |
uses: signalwire/actions-template/.github/workflows/meta-repo-content.yml@main | |
with: | |
META_CONTENT: '/var/www/freeswitch/public/{release,unstable}/${{ 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 }} |