name: Build windows installer in Docker
on:
workflow_dispatch:
# push:
# branches: [ default ]
jobs:
sources:
uses: ./.github/workflows/prep_sources.yml
build:
needs: sources
runs-on: ubuntu-latest
steps:
- name: Download source artifact
uses: actions/download-artifact@v3
with:
name: source_package
- name: untar files
run: tar -xvf sources.tar
- name: Cache docker image
id: cache-docker
uses: actions/cache@v3
env:
cache-name: cache-docker
with:
path: /tmp/latest.tar
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('beremiz_public_dist/Dockerfile', 'beremiz_public_dist/*.sh') }}
- if: ${{ steps.cache-docker.outputs.cache-hit == false }}
name: Create docker image
run: |
cd beremiz_public_dist
./build_docker_image.sh
docker image save --output="/tmp/latest.tar" beremiz_public_builder
- if: ${{ steps.cache-docker.outputs.cache-hit == false }}
name: Save docker image in cache
id: cache-docker-save
uses: actions/cache/save@v3
with:
path: /tmp/latest.tar
key: ${{ steps.cache-docker.outputs.cache-primary-key }}
- if: ${{ steps.cache-docker.outputs.cache-hit != false }}
name: Re-use docker image
run: |
docker image load --input="/tmp/latest.tar"
- name: Create docker container
run: |
cd beremiz_public_dist
./create_docker_container.sh ${{ github.workspace }}/build
- name: Run build in docker
run: |
cd beremiz_public_dist
# override HG revision IDs in Makefile
./build_in_docker.sh \
beremiz_revisionid=stamp \
matiec_revisionid=stamp \
canfestival_revisionid=stamp \
Modbus_revisionid=stamp \
open62541_revisionid=stamp
- name: Upload built artifact
uses: actions/upload-artifact@v3
with:
name: windows_bundles
path: |
${{ github.workspace }}/build/Beremiz-*.exe
${{ github.workspace }}/build/Beremiz-*.zip
retention-days: 5