|
| 1 | +name: Nightly packages |
| 2 | + |
| 3 | +on: |
| 4 | + workflow_dispatch: |
| 5 | + schedule: |
| 6 | + - cron: '00 23 * * *' |
| 7 | + |
| 8 | + |
| 9 | +jobs: |
| 10 | + tarball: |
| 11 | + runs-on: ubuntu-latest |
| 12 | + |
| 13 | + steps: |
| 14 | + - name: Checkout syslog-ng source |
| 15 | + uses: actions/checkout@v2 |
| 16 | + with: |
| 17 | + fetch-depth: 0 |
| 18 | + |
| 19 | + - name: Docker image |
| 20 | + run: ./dbld/rules cache-image-tarball |
| 21 | + |
| 22 | + - name: Tarball |
| 23 | + run: ./dbld/rules pkg-tarball |
| 24 | + |
| 25 | + - name: Store tarball as artifact |
| 26 | + uses: actions/upload-artifact@v2 |
| 27 | + with: |
| 28 | + name: tarball |
| 29 | + path: dbld/build/*.tar.gz |
| 30 | + |
| 31 | + packages: |
| 32 | + runs-on: ubuntu-latest |
| 33 | + needs: tarball |
| 34 | + strategy: |
| 35 | + matrix: |
| 36 | + dbld-builder-images: |
| 37 | + - { distro: 'debian-stretch', pkg: 'deb', upload: 'true' } |
| 38 | + - { distro: 'debian-buster', pkg: 'deb', upload: 'true' } |
| 39 | + - { distro: 'debian-sid', pkg: 'deb', upload: 'true' } |
| 40 | + - { distro: 'ubuntu-xenial', pkg: 'deb', upload: 'true' } |
| 41 | + - { distro: 'ubuntu-bionic', pkg: 'deb', upload: 'true' } |
| 42 | + - { distro: 'ubuntu-focal', pkg: 'deb', upload: 'true' } |
| 43 | + - { distro: 'centos-7', pkg: 'rpm', upload: 'false' } |
| 44 | + - { distro: 'fedora-33', pkg: 'rpm', upload: 'false' } |
| 45 | + fail-fast: false |
| 46 | + env: |
| 47 | + DISTRIBUTION: ${{ matrix.dbld-builder-images.distro }} |
| 48 | + PACKAGE_FORMAT: ${{ matrix.dbld-builder-images.pkg }} |
| 49 | + UPLOAD: ${{ matrix.dbld-builder-images.upload }} |
| 50 | + |
| 51 | + steps: |
| 52 | + - name: Create a working directory |
| 53 | + run: | |
| 54 | + MY_WORKSPACE=$(mktemp --tmpdir=${GITHUB_WORKSPACE} -d tarball-XXXXX) |
| 55 | + MY_WORKSPACE_NAME=${MY_WORKSPACE##"${GITHUB_WORKSPACE}/"} |
| 56 | + echo "MY_WORKSPACE_NAME=${MY_WORKSPACE_NAME}" >> ${GITHUB_ENV} |
| 57 | +
|
| 58 | + - name: Fetch tarball artifact |
| 59 | + uses: actions/download-artifact@v2 |
| 60 | + with: |
| 61 | + name: tarball |
| 62 | + path: ${{ env.MY_WORKSPACE_NAME }} |
| 63 | + |
| 64 | + - name: Extract tarball |
| 65 | + run: cd ${GITHUB_WORKSPACE}/${MY_WORKSPACE_NAME} && mkdir syslog-ng && tar --strip-components=1 -xf syslog-ng*.tar.gz -C syslog-ng && ls -lR |
| 66 | + |
| 67 | + - name: Image for ${{ env.DISTRIBUTION }} |
| 68 | + run: cd ${GITHUB_WORKSPACE}/${MY_WORKSPACE_NAME}/syslog-ng && ./dbld/rules image-${{ env.DISTRIBUTION }} |
| 69 | + |
| 70 | + - name: Binary for ${{ env.DISTRIBUTION }} |
| 71 | + run: cd ${GITHUB_WORKSPACE}/${MY_WORKSPACE_NAME}/syslog-ng && ./dbld/rules package-${{ env.DISTRIBUTION }} |
| 72 | + |
| 73 | + # Note: azure/CLI docker container mounts the GITHUB_WORKSPACE folder and changes the environment variable. |
| 74 | + - name: Upload the package |
| 75 | + if: env.UPLOAD == 'true' |
| 76 | + uses: azure/CLI@v1 |
| 77 | + env: |
| 78 | + SRC_PATH: ${{ env.MY_WORKSPACE_NAME }}/syslog-ng/dbld/build/${{ env.DISTRIBUTION }} |
| 79 | + DST_PATH: incoming-nightly/${{ env.DISTRIBUTION }} |
| 80 | + with: |
| 81 | + inlineScript: az storage blob upload-batch --sas-token '${{ secrets.AZURE_SAS_TOKEN }}' --account-name 'syslogngose' --source ${GITHUB_WORKSPACE}/${SRC_PATH} --destination ${DST_PATH} |
0 commit comments