18.2.3 #5
Workflow file for this run
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: Wheel builder | |
on: | |
release: | |
types: [published,edited] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: contains(github.event.release.body, '<!--build-->') | |
strategy: | |
fail-fast: true | |
matrix: | |
python-version: [3.7, 3.8, 3.9] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Creating environment variables | |
run: | | |
github_tag="${GITHUB_REF#refs/tags/}" | |
echo "GITHUB_TAG=${github_tag}" >> "$GITHUB_ENV" | |
echo "GITHUB_RELEASE_API_URL=${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/tags/${github_tag}" >> "$GITHUB_ENV" | |
echo "GITHUB_TAG_FOLDER=tag_data" >> "$GITHUB_ENV" | |
- name: Install dependencies | |
run: | | |
sudo apt install -y libx11-dev libxext-dev libxres-dev jq | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade wheel | |
- name: Download release and extracting | |
run: | | |
code_archive_url="$(curl --header "Accept: application/vnd.github.v3+json" "${GITHUB_RELEASE_API_URL}" | jq --raw-output .zipball_url)" | |
echo downloading "${code_archive_url}" | |
wget --output-document="release.zip" "${code_archive_url}" | |
# the folder name in the archive may change | |
# so create a new folder so we can use globs | |
# without having to fear the existence of other folders | |
mkdir "${GITHUB_TAG_FOLDER}" | |
cd "${GITHUB_TAG_FOLDER}" | |
unzip ../release.zip | |
- name: building | |
run: | | |
cd "${GITHUB_TAG_FOLDER}"/*/ | |
python setup.py bdist_wheel | |
- name: uploading | |
run: | | |
upload_url="$(curl --header "Accept: application/vnd.github.v3+json" "${GITHUB_RELEASE_API_URL}" | jq --raw-output .upload_url)" | |
upload_url="${upload_url%{*}" | |
cd "${GITHUB_TAG_FOLDER}"/*/ | |
for filename in dist/*; do | |
echo uploading "${filename}" | |
filename_encoded="$(printf '%s' "${filename#*/}" | jq --slurp --raw-input --raw-output @uri)" | |
echo encoded filename "${filename_encoded}" | |
curl --request POST \ | |
--header "Accept: application/vnd.github.v3+json" \ | |
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ | |
--header "Content-Type: application/octet-stream" \ | |
--data-binary @"${filename}" \ | |
"${upload_url}?name=${filename_encoded}" | |
done |