diff --git a/.github/actions/prepare_snap7/action.yml b/.github/actions/prepare_snap7/action.yml new file mode 100644 index 00000000..02884990 --- /dev/null +++ b/.github/actions/prepare_snap7/action.yml @@ -0,0 +1,41 @@ +name: 'prepare to build a package' +description: 'Downloads and unpacks snap7 archive. Copies the required files. Updates wheels' +inputs: + snap7-archive-url: + description: 'Link to download snap7 archive' + required: true + default: 'https://sourceforge.net/projects/snap7/files/1.4.2/snap7-full-1.4.2.7z/download' +runs: + using: "composite" + steps: + - name: Cache snap7-archive + id: snap7-archive + uses: actions/cache@v3 + with: + path: snap7-full-1.4.2.7z + key: ${{ inputs.snap7-archive-url }} + + - name: Install choco packages + if: steps.snap7-archive.outputs.cache-hit != 'true' && runner.os == 'Windows' + shell: bash + run: choco install --allow-downgrade wget --version 1.20.3.20190531 + + - name: Get snap7 + if: steps.snap7-archive.outputs.cache-hit != 'true' + shell: bash + run: wget -O snap7-full-1.4.2.7z --content-disposition -c ${{ inputs.snap7-archive-url }} + + - name: Extract archive + shell: bash + run: 7z x snap7-full-1.4.2.7z + + - name: Copy files + shell: bash + run: | + mkdir src + cp snap7-full-1.4.2/release/Wrappers/c-cpp/snap7.h src + cp .github/build_scripts/dummy.c ./ + + - name: Update wheel + shell: bash + run: python -m pip install --upgrade pip wheel \ No newline at end of file diff --git a/.github/workflows/build-and-test-arm32v7.yml b/.github/workflows/build-and-test-arm32v7.yml index 7af77205..3920fc36 100644 --- a/.github/workflows/build-and-test-arm32v7.yml +++ b/.github/workflows/build-and-test-arm32v7.yml @@ -4,8 +4,6 @@ on: branches: [master] pull_request: branches: [master] -env: - snap7-archive-url: https://sourceforge.net/projects/snap7/files/1.4.2/snap7-full-1.4.2.7z/download jobs: arm32-build: name: Build arm32 wheel @@ -13,37 +11,15 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - - name: Cache snap7-archive - id: snap7-archive - uses: actions/cache@v3 - with: - path: snap7-full-1.4.2.7z - key: ${{ env.snap7-archive-url }} - - - name: Get snap7 - if: steps.snap7-archive.outputs.cache-hit != 'true' - run: | - wget -O snap7-full-1.4.2.7z --content-disposition -c ${{ env.snap7-archive-url }} - - - name: Extract archive - run: 7z x snap7-full-1.4.2.7z - - - name: Copy files - run: | - mkdir src - cp snap7-full-1.4.2/release/Wrappers/c-cpp/snap7.h src - cp .github/build_scripts/dummy.c ./ - ls snap7-full-1.4.2 + + - name: prepare snap7 archive + uses: ./.github/actions/prepare_snap7 - name: Set up QEMU uses: docker/setup-qemu-action@v2 with: platforms: arm - - name: Update wheel - run: python -m pip install --upgrade wheel - - name: Build libsnap7.so run: | docker run --rm --interactive -v $PWD/snap7-full-1.4.2:/snap7-full-1.4.2 "arm32v7/gcc:latest" /bin/bash -s <