feat: arch/linking safeguards in workflows #2375
Workflow file for this run
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: 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/[email protected] | |
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 |