diff --git a/.github/workflows/build-ver.yml b/.github/workflows/build-ver.yml new file mode 100644 index 0000000..9932986 --- /dev/null +++ b/.github/workflows/build-ver.yml @@ -0,0 +1,51 @@ +name: Build Versioned Images + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + tag: + - '{ "tag": "0.9.2.0", "folder": "build/latest", "platforms": "linux/amd64,linux/arm64" }' + - '{ "tag": "0.9.2.1", "folder": "build/latest", "platforms": "linux/amd64,linux/arm64" }' + - '{ "tag": "0.9.2.2", "folder": "build/latest", "platforms": "linux/amd64,linux/arm64" }' + steps: + - name: Checkout Codebase + uses: actions/checkout@v4 + + - name: Login to GitHub CR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.CR_PAT }} + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_SECRET }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Container + uses: docker/build-push-action@v5 + with: + push: true + context: "{{defaultContext}}:${{ fromJSON(matrix.tag).folder }}" + tags: > + soupbowl/opensimulator:${{ fromJSON(matrix.tag).tag }}, + ghcr.io/soup-bowl/opensimulator-docker:${{ fromJSON(matrix.tag).tag }}, + platforms: ${{ fromJSON(matrix.tag).platforms }} + build-args: | + OPENSIM_VERSION=${{ fromJSON(matrix.tag).tag }} + cache-from: type=gha + cache-to: type=gha,mode=max