Nightly #1991
This file contains hidden or 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: Nightly | |
| on: | |
| schedule: | |
| # 2am SGT | |
| - cron: '0 18 * * *' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-minimal-rmf-docker-images: | |
| name: Push minimal-rmf Docker image to GitHub Packages | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to docker | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push minimal-rmf | |
| uses: docker/build-push-action@v5 | |
| with: | |
| push: true | |
| build-args: | | |
| ROS_DISTRO=${{ matrix.ros_distribution }} | |
| tags: ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| context: .github/minimal-rmf | |
| build-dashboard-image: | |
| needs: build-minimal-rmf-docker-images | |
| name: Push Dashboard docker image to GitHub Packages | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to docker | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push demo-dashboard | |
| uses: docker/build-push-action@v5 | |
| with: | |
| push: true | |
| build-args: | | |
| BASE_IMAGE=ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| ROS_DISTRO=${{ matrix.ros_distribution }} | |
| tags: ghcr.io/${{ github.repository }}/demo-dashboard:${{ matrix.ros_distribution }}-nightly | |
| context: .github/demo-dashboard | |
| build-api-server-image: | |
| needs: build-minimal-rmf-docker-images | |
| name: Push API server docker image to GitHub Packages | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to docker | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push api-server | |
| uses: docker/build-push-action@v5 | |
| with: | |
| push: true | |
| build-args: | | |
| ROS_DISTRO=${{ matrix.ros_distribution }} | |
| BASE_IMAGE=ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| tags: | | |
| ghcr.io/${{ github.repository }}/api-server:${{ matrix.ros_distribution }}-nightly | |
| ${{ matrix.ros_distribution == 'rolling' && format('ghcr.io/{0}/api-server:latest', github.repository) || null}} | |
| context: .github/api-server | |
| api-client: | |
| needs: build-minimal-rmf-docker-images | |
| name: Test API client | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| container: | |
| image: ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| defaults: | |
| run: | |
| shell: bash | |
| working-directory: packages/api-client | |
| steps: | |
| - name: Checkout main for rolling | |
| if: matrix.ros_distribution == 'rolling' | |
| uses: actions/checkout@v5 | |
| - name: Checkout ros_distribution branch | |
| if: matrix.ros_distribution != 'rolling' | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.ros_distribution }} | |
| - name: bootstrap | |
| uses: ./.github/actions/bootstrap | |
| with: | |
| package: api-client | |
| - name: lint | |
| run: pnpm run lint | |
| - name: test | |
| run: pnpm test | |
| api-server: | |
| needs: build-minimal-rmf-docker-images | |
| name: Test API server | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Sandboxing rolling due to https://github.com/open-rmf/rmf-web/issues/1086 | |
| # ros_distribution: [jazzy, rolling] | |
| ros_distribution: [jazzy] | |
| container: | |
| image: ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| defaults: | |
| run: | |
| shell: bash | |
| working-directory: packages/api-server | |
| steps: | |
| - name: Checkout main for rolling | |
| if: matrix.ros_distribution == 'rolling' | |
| uses: actions/checkout@v5 | |
| - name: Checkout ros_distribution branch | |
| if: matrix.ros_distribution != 'rolling' | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.ros_distribution }} | |
| - name: bootstrap | |
| uses: ./.github/actions/bootstrap | |
| with: | |
| package: api-server | |
| skip-build: true | |
| - name: tests | |
| run: | | |
| . /opt/ros/${{ matrix.ros_distribution }}/setup.bash | |
| pnpm run lint | |
| pnpm run test | |
| rmf-dashboard-framework: | |
| needs: build-minimal-rmf-docker-images | |
| name: Test dashboard framework | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| container: | |
| image: ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| defaults: | |
| run: | |
| shell: bash | |
| working-directory: packages/rmf-dashboard-framework | |
| steps: | |
| - name: Checkout main for rolling | |
| if: matrix.ros_distribution == 'rolling' | |
| uses: actions/checkout@v5 | |
| - name: Checkout ros_distribution branch | |
| if: matrix.ros_distribution != 'rolling' | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.ros_distribution }} | |
| - name: bootstrap | |
| uses: ./.github/actions/bootstrap | |
| with: | |
| package: rmf-dashboard-framework | |
| skip-build: true | |
| - name: lint | |
| run: pnpm lint | |
| - name: unit test | |
| run: pnpm run test | |
| ros-translator: | |
| needs: build-minimal-rmf-docker-images | |
| name: Test ros-translator | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [jazzy, rolling] | |
| container: | |
| image: ghcr.io/${{ github.repository }}/minimal-rmf:${{ matrix.ros_distribution }}-nightly | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| defaults: | |
| run: | |
| shell: bash | |
| working-directory: packages/ros-translator | |
| steps: | |
| - name: Checkout main for rolling | |
| if: matrix.ros_distribution == 'rolling' | |
| uses: actions/checkout@v5 | |
| - name: Checkout ros_distribution branch | |
| if: matrix.ros_distribution != 'rolling' | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ matrix.ros_distribution }} | |
| - name: dependencies | |
| run: apt update && apt install ros-dev-tools -y | |
| - name: bootstrap | |
| uses: ./.github/actions/bootstrap | |
| with: | |
| package: ros-translator | |
| skip-build: true | |
| - name: test | |
| run: . /opt/ros/${{ matrix.ros_distribution }}/setup.bash && pnpm test | |
| # dashboard-e2e: | |
| # strategy: | |
| # matrix: | |
| # npm: ['latest'] | |
| # fail-fast: false | |
| # needs: build-docker-images | |
| # name: Dashboard e2e | |
| # runs-on: ubuntu-latest | |
| # container: | |
| # image: ghcr.io/${{ github.repository }}/e2e | |
| # options: --privileged --ipc=host | |
| # defaults: | |
| # run: | |
| # shell: bash | |
| # working-directory: packages/dashboard-e2e | |
| # steps: | |
| # - uses: actions/checkout@v5 | |
| # - name: bootstrap | |
| # uses: ./.github/actions/bootstrap | |
| # with: | |
| # package: rmf-dashboard-e2e | |
| # skip-build: true | |
| # - name: test | |
| # uses: nick-fields/retry@v2 | |
| # with: | |
| # timeout_minutes: 20 | |
| # max_attempts: 3 | |
| # command: | | |
| # . /rmf_demos_ws/install/setup.bash | |
| # cd packages/dashboard-e2e | |
| # pnpm test | |
| # shell: bash | |
| # - name: upload artifacts | |
| # uses: actions/upload-artifact@v2 | |
| # if: always() | |
| # with: | |
| # name: artifacts | |
| # path: packages/dashboard-e2e/artifacts |