Skip to content

feat: arch/linking safeguards in workflows #2375

feat: arch/linking safeguards in workflows

feat: arch/linking safeguards in workflows #2375

Workflow file for this run

name: CI macOS
on:
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rst'
- '**.txt'
release:
types: [published]
workflow_dispatch:
env:
ARCH: x86_64
jobs:
build:
name: CI on macOS
strategy:
fail-fast: false
matrix:
os: [macos-12, macos-14]
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v2
with:
submodules: true
- name: Install FSF toolchain (x86_64)
if: ${{ matrix.os != 'macos-14' }}
uses: alire-project/alr-install@v1
with:
crates: gnat_native gprbuild
prefix: alire_prefix
- name: Install FSF toolchain (AArch64)
if: ${{ matrix.os == 'macos-14' }}
run: |
curl -L -O https://github.com/alire-project/alire/releases/download/nightly/alr-nightly-bin-aarch64-macos.zip
unzip alr-nightly-bin-aarch64-macos.zip bin/alr
bin/alr index --reset-community
bin/alr install gnat_native gprbuild --prefix alire_prefix
echo $PWD/bin >> $GITHUB_PATH
echo $PWD/alire_prefix/bin >> $GITHUB_PATH
echo "ARCH=aarch64" >> $GITHUB_ENV
- name: Check toolchain architecture
uses: mosteo-actions/gnat-toolchain-arch-checker@v1
- name: Install Python 3.x (required for the testsuite)
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Run test script
run: scripts/ci-github.sh
shell: bash
env:
BRANCH: ${{ github.base_ref }}
INDEX: ""
# Ascertain whether alr can run without the toolchain that built it
- name: Check standalone alr
uses: mosteo-actions/alr-standalone-checker@v1
with:
alr_path: bin
toolchain_path: alire_prefix
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: alr-bin-${{ env.ARCH }}-macos.zip
path: |
bin/alr
LICENSE.txt
- name: Upload logs (if failed)
if: failure()
uses: actions/upload-artifact@v4
with:
name: testsuite-log-macos.zip
path: testsuite/out
# Release steps start here. These only run during a release creation.
- name: Retrieve upload URL for the release
if: github.event_name == 'release'
id: get_release
uses: bruceadams/get-release@v1.3.2
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Get release version
id: get_version
if: github.event_name == 'release'
uses: battila7/get-version-action@v2
- name: Package release binaries
if: github.event_name == 'release'
run: zip alr-bin-macos.zip bin/alr LICENSE.txt
- name: Upload release assets
if: github.event_name == 'release'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: alr-bin-macos.zip
asset_name: alr-${{ steps.get_version.outputs.version-without-v }}-bin-${{ env.ARCH }}-macos.zip
asset_content_type: application/zip