diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..4425b55 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,87 @@ +name: Tests + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: '30 6 * * *' + +concurrency: + # Concurrency group that uses the workflow name and PR number if available + # or commit SHA as a fallback. If a new build is triggered under that + # concurrency group while a previous build is running it will be canceled. + # Repeated pushes to a PR will cancel all previous builds, while multiple + # merges to main will not cancel. + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +jobs: + build_recipe: + name: Build conda recipe (${{ matrix.subdir }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + subdir: win-64 + # TODO: + # - os: windows-latest + # subdir: win-arm64 + env: + PYTHONUNBUFFERED: "1" + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: conda-incubator/setup-miniconda@v3 + with: + auto-activate-base: true + activate-environment: "" + run-post: false + + - name: Install dependencies + shell: bash -el {0} + run: conda install -y "conda-build!=3.28.0,!=3.28.1" anaconda-client + + - name: Fetch pinnings + shell: bash -el {0} + run: | + curl -LO https://raw.githubusercontent.com/conda-forge/conda-forge-pinning-feedstock/main/recipe/conda_build_config.yaml + - name: Build recipe + shell: bash -el {0} + env: + CONDA_BLD_PATH: ${{ runner.temp }}/bld + run: conda build recipe --override-channels -c conda-forge -m conda_build_config.yaml + + - uses: actions/upload-artifact@v4 + if: github.event_name == 'pull_request' + with: + name: conda-launchers-${{ matrix.subdir }} + path: ${{ runner.temp }}/bld/${{ matrix.subdir }}/conda-launchers-*.* + + - name: Upload package to anaconda.org + shell: bash -el {0} + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + env: + CONDA_BLD_PATH: ${{ runner.temp }}/bld + ANACONDA_ORG_TOKEN: ${{ secrets.ANACONDA_ORG_CONDA_CANARY_TOKEN }} + ANACONDA_ORG_CHANNEL: conda-canary + ANACONDA_ORG_LABEL: dev + run: | + anaconda \ + --token="${ANACONDA_ORG_TOKEN}" \ + upload \ + --force \ + --register \ + --no-progress \ + --user="${ANACONDA_ORG_CHANNEL}" \ + --label="${ANACONDA_ORG_LABEL}" \ + ${CONDA_BLD_PATH}/${{ matrix.subdir }}/conda-launchers-*.* + echo "Uploaded the following files:" + basename -a ${CONDA_BLD_PATH}/${{ matrix.subdir }}/conda-launchers-*.* + + echo "Use this command to try out the build:" + echo " conda install -c ${ANACONDA_ORG_CHANNEL}/label/${ANACONDA_ORG_LABEL} conda-launchers"