diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 3e86645..0f296f8 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -33,6 +33,8 @@ jobs: with: fetch-depth: 0 lfs: true + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub @@ -52,4 +54,5 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max target: root-user + platforms: linux/amd64,linux/arm64 push: true diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index e1d93b3..27c1fd2 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -27,12 +27,20 @@ jobs: build-package-cpp: name: Build C++ Package runs-on: ubuntu-latest + strategy: + matrix: + architecture: [amd64, arm64] steps: - name: Checkout Repository uses: actions/checkout@v3 with: fetch-depth: 0 lfs: true + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + if: matrix.architecture == 'arm64' + with: + platforms: arm64 - name: Login to DockerHub uses: docker/login-action@v2 with: @@ -51,12 +59,20 @@ jobs: build-package-python: name: Build Python Package runs-on: ubuntu-latest + strategy: + matrix: + architecture: [amd64, arm64] steps: - name: Checkout Repository uses: actions/checkout@v3 with: fetch-depth: 0 lfs: true + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + if: matrix.architecture == 'arm64' + with: + platforms: arm64 - name: Login to DockerHub uses: docker/login-action@v2 with: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b40c4d2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,52 @@ +# Apache License 2.0 + +name: Build + +on: + push: + branches: + - main + pull_request: + + +concurrency: + group: main-${{ github.ref }} + cancel-in-progress: true + +env: + PROJECT_NAME: open-space-toolkit-base + +jobs: + prepare-environment: + name: Prepare Environment Variables + runs-on: ubuntu-latest + outputs: + project_name: ${{ steps.project-name.outputs.value }} + project_version: ${{ steps.project-version.outputs.value }} + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + lfs: true + - id: project-name + name: Get Project Name + run: | + echo "Project name: ${{ env.PROJECT_NAME }}" + echo "value=${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT + - id: project-version + name: Get Project Version + run: | + project_version=$(git describe --tags --always) + echo "Project version: ${project_version}" + echo "value=${project_version}" >> $GITHUB_OUTPUT + + build-development-image: + name: Build Development Image + needs: + - prepare-environment + uses: ./.github/workflows/build-image.yml + with: + project_name: ${{ needs.prepare-environment.outputs.project_name }} + project_version: ${{ needs.prepare-environment.outputs.project_version }} + secrets: inherit \ No newline at end of file