Make test actions run only once #2409
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: | |
jobs: | |
build: | |
name: CI on macOS | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-13 # x64 | |
- macos-latest # arm64 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install FSF toolchain | |
uses: alire-project/alr-install@v2 | |
with: | |
crates: gnat_native gprbuild | |
prefix: alire_prefix | |
- 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@v5 | |
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-${{ runner.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-${{ runner.arch }}.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: Select arch name | |
id: get_arch | |
if: github.event_name == 'release' | |
shell: bash | |
run: | | |
case ${{ runner.arch }} in | |
X64) echo "arch=x86_64" >> $GITHUB_OUTPUT ;; | |
ARM64) echo "arch=aarch64" >> $GITHUB_OUTPUT ;; | |
*) echo "Unknown architecture, failing..." && exit 1 ;; | |
esac | |
- 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-${{ steps.get_arch.outputs.arch }}-macos.zip | |
asset_content_type: application/zip |