Skip to content

chore(ci): build channel from artifacts #944

chore(ci): build channel from artifacts

chore(ci): build channel from artifacts #944

Workflow file for this run

on:
push:
branches:
- "main"
pull_request:
name: Testsuite
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
PYTHONIOENCODING: utf-8
SCCACHE_GHA_ENABLED: "true"
ACTIONS_CACHE_SERVICE_V2: on
jobs:
build-binary-linux-x86_64:
name: Build Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: prefix-dev/setup-pixi@main
with:
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
- name: Configure sccache
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Build backends channel
run: pixi run -e build create-testsuite-channel
- name: Show sccache stats
run: pixi run -e build sccache --stop-server
- name: Upload executables as artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: pixi-build-backends-linux-x86_64
path: artifacts-channel
if-no-files-found: error
retention-days: 60
build-binary-windows-x86_64:
name: Build Windows
runs-on: windows-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- name: Create Dev Drive
run: ${{ github.workspace }}/.github/workflows/setup-dev-drive.ps1
- name: Copy Git Repo to Dev Drive
run: |
Copy-Item -Path "${{ github.workspace }}" -Destination "${{ env.PIXI_WORKSPACE }}" -Recurse
- uses: prefix-dev/setup-pixi@main
with:
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
manifest-path: ${{ env.PIXI_WORKSPACE }}/pixi.toml
- name: Configure sccache
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Enable long paths (Windows)
run: git config --global core.longpaths true
- name: Build backends channel
run: pixi run -e build create-testsuite-channel
working-directory: ${{ env.PIXI_WORKSPACE }}
- name: Show sccache stats
run: pixi run -e build sccache --stop-server
working-directory: ${{ env.PIXI_WORKSPACE }}
- name: Upload executables as artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: pixi-build-backends-windows-x86_64
path: ${{ env.PIXI_WORKSPACE }}/artifacts-channel
if-no-files-found: error
retention-days: 60
build-binary-macos-aarch64:
name: Build macOS
runs-on: macos-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: prefix-dev/setup-pixi@main
with:
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
- name: Configure sccache
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Build backends channel
run: pixi run -e build create-testsuite-channel
- name: Show sccache stats
run: pixi run -e build sccache --stop-server
- name: Upload executables as artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: pixi-build-backends-macos-aarch64
path: artifacts-channel
if-no-files-found: error
retention-days: 60
test-linux-x86_64:
name: Test Linux x86_64
runs-on: ubuntu-latest
needs: build-binary-linux-x86_64
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
repository: prefix-dev/pixi-build-testsuite
- name: Set up pixi
uses: prefix-dev/setup-pixi@main
with:
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
- name: Download pixi artifacts
run: pixi run download-artifacts --repo pixi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download pixi-build-backends artifacts
run: pixi run download-artifacts --repo pixi-build-backends --run-id ${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup binary permissions
run: chmod a+x artifacts/pixi*
- name: Run integration tests
run: pixi run --locked test-slow
env:
PIXI_BIN_DIR: ${{ github.workspace }}/artifacts
BUILD_BACKENDS_BIN_DIR: ${{ github.workspace }}/artifacts
test-windows-x86_64:
name: Test Windows x86_64
runs-on: windows-latest
needs: build-binary-windows-x86_64
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
repository: prefix-dev/pixi-build-testsuite
- name: Create Dev Drive
run: ${{ github.workspace }}/.github/workflows/setup-dev-drive.ps1
- name: Copy Git Repo to Dev Drive
run: Copy-Item -Path "${{ github.workspace }}" -Destination "${{ env.PIXI_WORKSPACE }}" -Recurse
- name: Set up pixi
uses: prefix-dev/setup-pixi@main
with:
manifest-path: ${{ env.PIXI_WORKSPACE }}/pixi.toml
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
- name: Download pixi artifacts
working-directory: ${{ env.PIXI_WORKSPACE }}
run: pixi run download-artifacts --repo pixi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download pixi-build-backends artifacts
working-directory: ${{ env.PIXI_WORKSPACE }}
run: pixi run download-artifacts --repo pixi-build-backends --run-id ${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run integration tests
run: pixi run --locked test-slow
working-directory: ${{ env.PIXI_WORKSPACE }}
env:
PIXI_BIN_DIR: ${{ env.PIXI_WORKSPACE }}/artifacts
BUILD_BACKENDS_BIN_DIR: ${{ env.PIXI_WORKSPACE }}/artifacts
test-macos-aarch64:
name: Test macOS aarch64
runs-on: macos-14
needs: build-binary-macos-aarch64
timeout-minutes: 20
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
repository: prefix-dev/pixi-build-testsuite
- name: Set up pixi
uses: prefix-dev/setup-pixi@main
with:
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
- name: Download pixi artifacts
run: pixi run download-artifacts --repo pixi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download pixi-build-backends artifacts
run: pixi run download-artifacts --repo pixi-build-backends --run-id ${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup binary permissions
run: chmod a+x artifacts/pixi*
- name: Run integration tests
run: pixi run --locked test-slow
env:
PIXI_BIN_DIR: ${{ github.workspace }}/artifacts
BUILD_BACKENDS_BIN_DIR: ${{ github.workspace }}/artifacts