Resolve #976 #789
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: 'Linux x86-64' | |
on: push | |
jobs: | |
linux-sdk: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: ccache cache files | |
uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: linux-x86-64-${{ runner.os }}-sdk-${{ steps.get-date.outputs.date }} | |
restore-keys: | | |
linux-x86-64-${{ runner.os }}-sdk | |
- name: Build SDK | |
shell: bash | |
run: | | |
mkdir -p $RUNNER_TEMP/lief-install | |
docker run --name lief_sdk --rm \ | |
-e CCACHE_COMPRESS=1 \ | |
-e CCACHE_MAXSIZE=10.0G \ | |
-e CCACHE_DIR=/ccache \ | |
-v $GITHUB_WORKSPACE:/src \ | |
-v $RUNNER_TEMP/lief-install:/install \ | |
-v $HOME/.ccache:/ccache \ | |
liefproject/manylinux_2_28_x86_64 bash /src/scripts/docker/run_linux_sdk.sh | |
- name: 'Upload SDK Artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-x86-64-sdk | |
path: build/*.tar.gz | |
retention-days: 3 | |
- name: 'Upload Install Artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-x86-64-install | |
path: ${{ runner.temp }}/lief-install | |
retention-days: 1 | |
testing: | |
if: "!contains(github.event.commits[0].message, '[skip-test]')" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: ccache cache files | |
uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: linux-x86-64-${{ runner.os }}-test-${{ steps.get-date.outputs.date }} | |
restore-keys: | | |
linux-x86-64-${{ runner.os }}-test | |
- name: Python 3.8 -- Wheel & Test | |
shell: bash | |
env: | |
PYTHON_VERSION: 38 | |
run: | | |
docker run --rm \ | |
-e CCACHE_COMPRESS=1 \ | |
-e CCACHE_MAXSIZE=10.0G \ | |
-e CCACHE_CPP2=1 \ | |
-e CCACHE_DIR=/ccache \ | |
-e PYTHON_VERSION=$PYTHON_VERSION \ | |
-e PYTHON_BINARY=/opt/python/cp38-cp38/bin/python3.8 \ | |
-v $GITHUB_WORKSPACE:/src \ | |
-v $HOME/.ccache:/ccache \ | |
liefproject/manylinux_2_28_x86_64 bash /src/scripts/docker/run_linux_test.sh | |
pywheels: | |
runs-on: ubuntu-latest | |
needs: linux-sdk | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: ccache cache files | |
uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: linux-x86-64-${{ runner.os }}-${{ matrix.python-version }}-${{ steps.get-date.outputs.date }} | |
restore-keys: | | |
linux-x86-64-${{ runner.os }}-${{ matrix.python-version }} | |
- name: Download LIEF install dir | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux-x86-64-install | |
path: ${{ runner.temp }}/lief-install | |
- name: Python ${{ matrix.python-version }} -- Wheel | |
shell: bash | |
env: | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
run: | | |
PYTHON_VERSION_ALT=$(echo "${PYTHON_VERSION}" | sed 's/\.//') # Transform 3.8 -> 38 | |
docker run --rm \ | |
-e CCACHE_COMPRESS=1 \ | |
-e CCACHE_MAXSIZE=10.0G \ | |
-e CCACHE_CPP2=1 \ | |
-e CCACHE_DIR=/ccache \ | |
-e PYTHON_VERSION=$PYTHON_VERSION_ALT \ | |
-e PYTHON_BINARY=/opt/python/cp${PYTHON_VERSION_ALT}-cp${PYTHON_VERSION_ALT}/bin/python${PYTHON_VERSION} \ | |
-v $GITHUB_WORKSPACE:/src \ | |
-v $HOME/.ccache:/ccache \ | |
-v $RUNNER_TEMP/lief-install:/install \ | |
liefproject/manylinux_2_28_x86_64 bash /src/scripts/docker/run_linux.sh | |
- name: 'Artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-x86-64-python${{ matrix.python-version }}-wheel | |
path: dist/*.whl | |
retention-days: 3 | |
deploy: | |
runs-on: ubuntu-latest | |
if: ${{ always() }} | |
needs: [linux-sdk, pywheels] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: ${{ runner.temp }}/artifacts | |
- name: Display artifacts | |
run: ls -R | |
working-directory: ${{ runner.temp }}/artifacts | |
- name: Deploy | |
env: | |
LIEF_S3_KEY: ${{ secrets.LIEF_S3_KEY }} | |
LIEF_S3_SECRET: ${{ secrets.LIEF_S3_SECRET }} | |
shell: bash | |
run: | | |
docker run --rm \ | |
-v $GITHUB_WORKSPACE:/src \ | |
-v $RUNNER_TEMP:/runner_tmp \ | |
-e GITHUB_ACTIONS="true" \ | |
-e GITHUB_WORKSPACE=$GITHUB_WORKSPACE \ | |
-e GITHUB_REF=$GITHUB_REF \ | |
-e GITHUB_REPOSITORY=$GITHUB_REPOSITORY \ | |
-e LIEF_S3_KEY=$LIEF_S3_KEY \ | |
-e LIEF_S3_SECRET=$LIEF_S3_SECRET \ | |
liefproject/deploy python3 /src/.github/deploy.py /runner_tmp/artifacts | |
documentation: | |
needs: [deploy] | |
runs-on: ubuntu-latest | |
container: | |
image: liefproject/manylinux_2_28_x86_64 | |
env: | |
CIRCLE_CI_URL: "https://circleci.com/api/v2/project/gh/lief-project/doc/pipeline" | |
CIRCLE_CI_TOKEN: ${{ secrets.CIRCLE_CI_TOKEN }} | |
steps: | |
- name: Trigger documentation | |
if: github.ref == 'refs/heads/master' | |
run: | | |
curl --request POST --url ${CIRCLE_CI_URL} \ | |
--header "Circle-Token: ${CIRCLE_CI_TOKEN}" \ | |
--header 'content-type: application/json' \ | |
--data '{"parameters":{"lief-branch":"master"}}' |