Skip to content

Commit

Permalink
New workflow to check GNAT CE builds (#1566)
Browse files Browse the repository at this point in the history
* New workflow to check GNAT CE builds

* Fix compilation with CE 2020
  • Loading branch information
mosteo authored Feb 16, 2024
1 parent 2ca9a80 commit 9eb9154
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 1 deletion.
81 changes: 81 additions & 0 deletions .github/workflows/ci-community.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: CI Community
# Check proper build using the community edition of the AdaCore toolchain

on:
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rst'
- '**.txt'
workflow_dispatch:

jobs:

build:
name: ce${{matrix.version}} on ${{ matrix.os }}

runs-on: ${{ matrix.os }}

strategy:
fail-fast: false # Attempt to generate as many of them as possible
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
version:
- 2020
- 2021
exclude:
- os: macos-latest
version: 2021 # it was never released for macOS

steps:
- name: Check out repository
uses: actions/checkout@v2
with:
submodules: true

# Until some stable alr with `alr install` is available, we cannot rely on
# the alr-install action, as that introduces a circular dependency. If a
# nightly build were to fail, there's no way to do an `alr install` anymore
# TODO: replace with `alr-install` once alr 2.0 is out.

# We cannot use variable names in the action reference, so we need to make
# them explicit twice
- name: Install Community 2020 toolchain
uses: ada-actions/toolchain@ce2020
if: ${{ matrix.version == '2020' }}
with:
distrib: community

- name: Install Community 2021 toolchain
uses: ada-actions/toolchain@ce2021
if: ${{ matrix.version == '2021' }}
with:
distrib: community

- 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

- name: Upload logs (if failed)
if: failure()
uses: actions/upload-artifact@master
with:
name: e3-log-linux.zip
path: testsuite/out

- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: alr-bin-${{ matrix.os }}.zip
path: |
bin/alr*
LICENSE.txt
1 change: 1 addition & 0 deletions .github/workflows/ci-docker.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: CI Docker
# Check builds on supported Linux distributions

on:
pull_request:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tarball-full.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
name: Full sources
# Create a tarball that includes everything necessary for building,
# particularly 3rd party dependencies in submodules which are not included in
# GitHub automatic source tarballs.

on:
release:
Expand Down
4 changes: 3 additions & 1 deletion src/alr/alr-commands.adb
Original file line number Diff line number Diff line change
Expand Up @@ -591,10 +591,12 @@ package body Alr.Commands is
end if;

return R : constant Alire.Roots.Optional.Reference :=
(Ptr => Cmd.Optional_Root.Value.Ptr.all'Unchecked_Access);
(Ptr => Cmd.Optional_Root.Value.Ptr.all'Unrestricted_Access);
-- Workaround for bug (?) in GNAT 11 about dangling pointers. It should
-- simply be:
-- return Cmd.Optional_Root.Value;
-- Also, the 'Unrestricted is needed by GNAT CE 2020, it can be simply
-- 'Unchecked in later versions.
end Root;

---------
Expand Down

0 comments on commit 9eb9154

Please sign in to comment.