diff --git a/.github/workflows/ci-appimage.yml b/.github/workflows/ci-appimage.yml deleted file mode 100644 index 023b05bbb..000000000 --- a/.github/workflows/ci-appimage.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: CI AppImage - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - release: - types: [published] - workflow_dispatch: - -jobs: - - build: - name: Assemble for Linux - - # Oldest supported by Alire+GitHub to increase AppImage back-compatibility - # Unfortunately we depend on the static elaboration model of recent GNATs - runs-on: ubuntu-20.04 - - steps: - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install FSF toolchain - run: sudo apt-get install -y gnat-10 gprbuild - - - name: Set up gcc on the PATH to be gcc-10 - run: | - mkdir -p $HOME/.local/bin - ln -s /usr/bin/gcc-10 $HOME/.local/bin/gcc - - - 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: "" - - - name: Upload logs (if failed) - if: failure() - uses: actions/upload-artifact@master - with: - name: e3-log-linux.zip - path: testsuite/out - - - 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 - if: (github.event_name == 'release') - id: get_version - uses: battila7/get-version-action@v2 - - - name: Get ref version - if: (github.event_name != 'release') - id: get_ref - run: echo "::set-output name=short_sha::$(echo ${{ github.sha }} | cut -c1-8)" - - ############ - # AppImage # - ############ - - - name: Install AppImage dependencies (libfuse2) - shell: bash - run: | - sudo add-apt-repository universe - sudo apt-get install -y libfuse2 - - - name: Install AppImage's linuxdeploy - uses: miurahr/install-linuxdeploy-action@v1 - with: - plugins: appimage - - - name: Copy license into AppImage - run: | - mkdir -p AppDir - cp LICENSE.txt AppDir/ - - - name: Create AppImage - run: > - linuxdeploy-x86_64.AppImage --appdir AppDir -e bin/alr - -d resources/alr.desktop -i resources/alr.png --output appimage - - - name: Rename AppImage - run: mv alr*AppImage alr.AppImage - - - name: Upload AppImage asset - 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.AppImage - asset_name: alr-${{ steps.get_version.outputs.version-without-v }}-x86_64.AppImage - asset_content_type: application/x-elf - - # When not a release we upload as a plain artifact, just to make sure that - # this works as expected. Also this way the AppImage is available for - # regular PRs for easy testing. - - name: Upload as artifact (when not a release) - if: (github.event_name != 'release') - uses: actions/upload-artifact@v2 - with: - name: alr-${{ steps.get_ref.outputs.short_sha }}-x86_64.AppImage.zip - path: alr.AppImage diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml deleted file mode 100644 index 590cb60c6..000000000 --- a/.github/workflows/ci-docker.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: CI Docker -# Check builds on supported Linux distributions - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - -jobs: - - build: - name: CI on ${{ matrix.tag }} - - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - tag: # Those are our ghcr.io/alire-project/docker/gnat:tag machines - - centos-stream-fsf-latest # Test unsupported package manager - - debian-stable # Test current stable Debian compiler - - fedora-latest # Test current Fedora compiler - - ubuntu-lts # Test current LTS Ubuntu compiler - - arch-rolling # Test Arch compiler (closest to FSF?) - - steps: - - name: Check out repository - uses: actions/checkout@v4 - with: - submodules: true - - - name: OS information for ${{ matrix.tag }} - uses: mosteo-actions/docker-run@v2 - with: - image: ghcr.io/alire-project/docker/gnat:${{matrix.tag}} - command: | - lsb_release -a || \ - cat /etc/os-release || \ - cat /etc/system-release || \ - echo "No lsb_release information" - - - name: Run test script (${{ matrix.tag }}) - uses: mosteo-actions/docker-run@v2 - with: - image: ghcr.io/alire-project/docker/gnat:${{matrix.tag}} - command: scripts/ci-github.sh - params: -v${PWD}:/alire -w /alire - - - name: Upload logs (if failed) - if: failure() - uses: actions/upload-artifact@master - with: - name: e3-log-docker-${{ matrix.tag }}.zip - path: testsuite/out diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml deleted file mode 100644 index 7992d2199..000000000 --- a/.github/workflows/ci-linux.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: CI linux - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - release: - types: [published] - workflow_dispatch: - -env: - alire_index: "" - # Empty index: test with master of community index - # Otherwise: test with particular commit/branch - # e.g.: index: "git+https://github.com/alire-project/alire-index@deadbeef" - -jobs: - - build: - name: CI on Linux - - runs-on: ubuntu-20.04 - - steps: - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install FSF toolchain - uses: alire-project/alr-install@v1 - with: - crates: gnat_native gprbuild - - - 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: "" - - - name: Upload binaries - uses: actions/upload-artifact@v2 - with: - name: alr-bin-linux.zip - path: | - bin/alr - LICENSE.txt - - - name: Upload logs (if failed) - if: failure() - uses: actions/upload-artifact@master - with: - name: e3-log-linux.zip - path: testsuite/out - - # Release steps start here. These only run during a release creation. - - - name: Package binaries - if: (github.event_name == 'release') - run: zip alr-bin-linux.zip bin/alr LICENSE.txt - - - 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 - if: (github.event_name == 'release') - id: get_version - uses: battila7/get-version-action@v2 - - - name: Upload binary 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-linux.zip - asset_name: alr-${{ steps.get_version.outputs.version-without-v }}-bin-x86_64-linux.zip - asset_content_type: application/zip diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml deleted file mode 100644 index 15025e11b..000000000 --- a/.github/workflows/ci-macos.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: CI macOS - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - release: - types: [published] - workflow_dispatch: - -jobs: - - build: - name: CI on macOS - - runs-on: macos-12 - - steps: - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install FSF toolchain - uses: alire-project/alr-install@v1 - with: - crates: gnat_native gprbuild - - - 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: "" - - - name: Upload binaries - uses: actions/upload-artifact@v2 - with: - name: alr-bin-macos.zip - path: | - bin/alr - LICENSE.txt - - - name: Upload logs (if failed) - if: failure() - uses: actions/upload-artifact@master - 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-x86_64-macos.zip - asset_content_type: application/zip diff --git a/.github/workflows/ci-toolchain.yml b/.github/workflows/ci-toolchain.yml deleted file mode 100644 index 803111b91..000000000 --- a/.github/workflows/ci-toolchain.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: CI self+toolchain -# Build Alire with `alr build` and using a toolchain installed from Alire -# The `alr` being tested is the one which is being submitted in the PR -# Toolchain is tested from `alr install` (1st build) and `alr build` (2nd -# build), so those are two different toolchain installations of the same -# toolchain. This way we not only test that alr builds itself, but that -# toolchain installations via `alr install` work as intented. - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - -jobs: - - build: - - name: ${{ matrix.os }} gcc^${{ matrix.gcc_version }} - - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - os: - - macos-12 - - ubuntu-latest - - windows-latest - gcc_version: [10, 11, 12, 13, 14] - - steps: - - name: Check out - uses: actions/checkout@v3 - with: - submodules: true - - # Use a stock alr to make the latest toolchain available - - - name: Install FSF toolchain - uses: alire-project/alr-install@v1 - with: - crates: gnat_native^${{matrix.gcc_version}} gprbuild - - - name: Build alr with toolchain from `alr install` - shell: bash - run: dev/build.sh - - # We can start using the alr we just built - - - name: Select toolchain GNAT^${{matrix.gcc_version}} - run: ./bin/alr -d -n toolchain --select gnat_native^${{matrix.gcc_version}} gprbuild - - - name: Show builder alr configuration - run: ./bin/alr -d -n version - - - name: Verify proper toolchain used for 1st build - shell: bash - run: ./bin/alr -d -n version | grep 'compiled with version' | grep -q '${{ matrix.gcc_version }}' - - - name: Update dependencies - run: ./bin/alr -d -n update - - - name: Show dependencies/pins - run: ./bin/alr -d -n -q with --solve || ./bin/alr -n -v -d with --solve - - - name: Show build environment, with debug fallback - run: ./bin/alr -d -n printenv || ./bin/alr -n -v -d printenv - - - name: Move ./bin to ./bin-old to allow for self-build - shell: bash - run: mv ./bin ./bin-old || { sleep 5s && mv ./bin ./bin-old; } - # Windows doesn't allow to replace a running exe so the next command - # fails otherwise. Also, this mv fails sometimes so we try twice JIC. - - - - name: SELF-BUILD - run: ./bin-old/alr -d -n build - - - name: Show built version - run: ./bin/alr -d -n version - - - name: Verify proper toolchain used for 2nd build - shell: bash - run: ./bin/alr -d -n version | grep 'compiled with version' | grep -q '${{ matrix.gcc_version }}' - - # Run the testsuite with the just build alr. The testsuite picks the proper - # alr in the ./bin/alr location. - - - name: Install Python 3.x # required by testsuite - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - name: Install e3 - run: pip install --upgrade -r testsuite/requirements.txt - - - name: Run testsuite # But ensure a new alr is not build - run: scripts/ci-github.sh build=false - shell: bash diff --git a/.github/workflows/ci-unsupported.yml b/.github/workflows/ci-unsupported.yml deleted file mode 100644 index 5d19dc271..000000000 --- a/.github/workflows/ci-unsupported.yml +++ /dev/null @@ -1,49 +0,0 @@ -# The purpose of this CI is to run tests in a platform where there is no -# detected native package manager - -name: CI unsupported - -on: - pull_request: - paths-ignore: - - 'doc/**' - - '**.md' - - '**.rst' - - '**.txt' - -jobs: - - build: - name: CI on unsupported Linux - - runs-on: ubuntu-latest - - steps: - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install FSF toolchain - uses: alire-project/alr-install@v1 - with: - crates: gnat_native gprbuild - - - 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 }} - ALIRE_DISABLE_DISTRO: true - - - name: Upload logs (if failed) - if: failure() - uses: actions/upload-artifact@master - with: - name: e3-log-unsupported.zip - path: testsuite/out diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml deleted file mode 100644 index aed0ac995..000000000 --- a/.github/workflows/nightly.yml +++ /dev/null @@ -1,115 +0,0 @@ -name: Nightly -# Create a nightly build from master and upload to the corresponding pre-release - -on: - push: - branches: - - 'feat/nightly' # Allows to be tested before merging - - 'fix/nightly' - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -jobs: - - build: - name: ${{ matrix.os }} - - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false # Attempt to generate as many of them as possible - matrix: - os: - - macos-14 - - macos-12 - - ubuntu-20.04 - - windows-latest - - steps: - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install FSF toolchain - uses: alire-project/alr-install@v1 - with: - crates: gnat_native gprbuild - - - name: Replace toolchain with aarch64 - if: ${{ runner.arch == 'ARM64' }} - run: | - curl -L https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-14.1.0-3/gnat-aarch64-darwin-14.1.0-3.tar.gz \ - | tar xzf - --strip-components=1 -C /Users/runner/work/alire/alire/alire_prefix - curl -L https://github.com/alire-project/GNAT-FSF-builds/releases/download/gprbuild-24.0.0-1/gprbuild-aarch64-darwin-24.0.0-1.tar.gz \ - | tar xzf - --strip-components=1 -C /Users/runner/work/alire/alire/alire_prefix - which gcc - gcc -v - - - 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 - - # Release steps start here - - - name: Get date - id: date - run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - shell: bash - - - name: Get metadata - run: | - touch alr-date-is-${{steps.date.outputs.date}}.txt - touch alr-commit-is-${{github.sha}}.txt - shell: bash - - - name: Package binaries (Linux) - if: startsWith(matrix.os, 'ubuntu') - run: zip alr-nightly-bin-x86_64-linux.zip bin/alr* LICENSE.txt alr-*.txt - - - name: Package binaries (macOS/x64) - if: startsWith(matrix.os, 'macos') && runner.arch == 'X64' - run: zip alr-nightly-bin-x86_64-macos.zip bin/alr* LICENSE.txt alr-*.txt - - - name: Package binaries (macOS/arm64) - if: startsWith(matrix.os, 'macos') && runner.arch == 'ARM64' - run: zip alr-nightly-bin-aarch64-macos.zip bin/alr* LICENSE.txt alr-*.txt - - # There's no zip on windows - - name: Install zip (Windows) - if: startsWith(matrix.os, 'windows') - run: choco install zip - - - name: Package binaries (Windows) - if: startsWith(matrix.os, 'windows') - run: zip alr-nightly-bin-x86_64-windows.zip bin/alr* LICENSE.txt alr-*.txt - - - name: Upload to release - uses: pyTooling/Actions/releaser/composite@main - with: - token: ${{ secrets.GITHUB_TOKEN }} - files: | - alr-nightly-*.zip - tag: nightly - rm: false diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml deleted file mode 100644 index f9208695b..000000000 --- a/.github/workflows/spellcheck.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: spellcheck - -on: - pull_request: - paths: - - '**.md' -jobs: - spellcheck: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: misspell - uses: reviewdog/action-misspell@v1 - with: - github_token: ${{ secrets.github_token }} - reporter: github-pr-review - locale: "US" - exclude: '*.lock' \ No newline at end of file diff --git a/.github/workflows/tarball-full.yml b/.github/workflows/tarball-full.yml deleted file mode 100644 index cc49c54a2..000000000 --- a/.github/workflows/tarball-full.yml +++ /dev/null @@ -1,53 +0,0 @@ -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: - types: [published] - workflow_dispatch: - -jobs: - - tar: - name: Full sources asset - - runs-on: ubuntu-latest - - steps: - - name: Install Python 3.x - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - name: Install git-archive-all - run: pip install git-archive-all - - - name: Check out repository - uses: actions/checkout@v2 - with: - submodules: true - - - name: Get release version - id: get_version - uses: battila7/get-version-action@v2 - - - name: Create full tarball - run: git-archive-all -9 alr-${{ steps.get_version.outputs.version-without-v }}.zip - - - name: Retrieve upload URL for the release - id: get_release - uses: bruceadams/get-release@v1.2.1 - env: - GITHUB_TOKEN: ${{ github.token }} - - - name: Upload asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get_release.outputs.upload_url }} - asset_path: alr-${{ steps.get_version.outputs.version-without-v }}.zip - asset_name: alr-${{ steps.get_version.outputs.version-without-v }}-full-sources.zip - asset_content_type: application/zip \ No newline at end of file