paths:
- 'tools/**'
- '.github/workflows/tools.yml'
+ push:
+ paths:
+ - 'tools/**'
+ - '.github/workflows/tools.yml'
permissions:
contents: read
jobs:
build-macos-latest:
+ if: github.event_name != 'push'
runs-on: macos-latest
steps:
run: |
chown -R buildbot:buildbot openwrt
+ - name: Set AUTOREMOVE config for tools container
+ if: github.event_name == 'push'
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: |
+ touch .config
+ echo CONFIG_DEVEL=y >> .config
+ echo CONFIG_AUTOREMOVE=y >> .config
+
- name: Make prereq
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt
with:
name: linux-buildbot-config
path: openwrt/.config
+
+ - name: Archive prebuilt tools
+ if: github.event_name == 'push'
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: tar --mtime=now -cf tools.tar staging_dir/host build_dir/host dl
+
+ - name: Upload prebuilt tools
+ if: github.event_name == 'push'
+ uses: actions/upload-artifact@v2
+ with:
+ name: linux-buildbot-prebuilt-tools
+ path: openwrt/tools.tar
+ retention-days: 1
+
+ push-tools-container:
+ needs: build-linux-buildbot
+ runs-on: ubuntu-latest
+ if: github.event_name == 'push'
+
+ permissions:
+ contents: read
+ packages: write
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ path: 'openwrt'
+
+ - name: Download prebuilt tools from build job
+ uses: actions/download-artifact@v2
+ with:
+ name: linux-buildbot-prebuilt-tools
+ path: openwrt
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v3
+ with:
+ context: openwrt
+ push: true
+ tags: ghcr.io/${{ github.repository_owner }}/tools:latest
+ file: openwrt/.github/workflows/Dockerfile.tools