| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| name: Build OpenServerless Operator |
| |
| on: |
| push: |
| tags: |
| - '[0-9]*' |
| branches-ignore: |
| - '*' |
| jobs: |
| image: |
| name: Build OpenServerless Operator Image |
| runs-on: ubuntu-22.04 |
| steps: |
| - name: Remove unnecessary files |
| run: | |
| sudo rm -rf /usr/share/dotnet |
| sudo rm -rf "$AGENT_TOOLSDIRECTORY" |
| - name: Checkout |
| uses: actions/checkout@v2 |
| with: |
| submodules: recursive |
| - name: License |
| uses: apache/skywalking-eyes@main |
| - name: Assign TAG from pull request |
| if: ${{ github.event_name == 'pull_request' }} |
| run: | |
| echo "IMG_TAG=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV" |
| - name: Assign TAG from push |
| if: ${{ github.event_name != 'pull_request' }} |
| run: | |
| echo "IMG_TAG=$(git describe --tags --abbrev=0)" >> "$GITHUB_ENV" |
| - name: Assign Custom Image Name |
| if: ${{ github.repository_owner != 'apache'}} |
| run: | |
| echo "MY_OPERATOR_IMAGE=${{ vars.MY_OPERATOR_IMAGE }}" >> "$GITHUB_ENV" |
| - name: Set up Python 3.12 |
| uses: actions/setup-python@v4 |
| with: |
| python-version: 3.12 |
| - name: Setup |
| run: bash .github/cisetup.sh |
| - name: Kind |
| uses: container-tools/kind-action@v2.0.4 |
| with: |
| version: v0.22.0 |
| cluster_name: nuvolaris |
| config: .github/kind.yaml |
| - name: Install |
| run: poetry install |
| - name: BuildAndLoad |
| run: task build-and-load TAG="$IMG_TAG" |
| - name: Ngrok |
| if: ${{ env.NGROK == 'on' }} |
| run: bash .github/debug-github-actions.sh |
| env: |
| NGROK_TOKEN: ${{ secrets.NGROK_TOKEN }} |
| USER_PASS: ${{ secrets.USER_PASS }} |
| - name: Wait |
| if: ${{ env.NGROK == 'on' }} |
| run: bash .github/wait.sh |
| - name: AddIngress |
| run: task kind:ingress |
| - name: Unit Test |
| run: task utest |
| continue-on-error: false |
| #- name: Integration Test |
| # run: task itest |
| # continue-on-error: false |
| - name: Registry login |
| uses: docker/login-action@v3 |
| with: |
| registry: registry.hub.docker.com |
| username: ${{ secrets.DOCKERHUB_USER }} |
| password: ${{ secrets.DOCKERHUB_TOKEN }} |
| - name: Set up QEMU |
| uses: docker/setup-qemu-action@v3 |
| with: |
| image: tonistiigi/binfmt:qemu-v7.0.0-28 |
| - name: Set up Docker Buildx |
| uses: docker/setup-buildx-action@v3 |
| - name: Image |
| run: task buildx-and-push TAG="$IMG_TAG" |