diff --git a/.github/workflows/container-image-squid.yml b/.github/workflows/container-image-squid.yml new file mode 100644 index 0000000000..f6b0050270 --- /dev/null +++ b/.github/workflows/container-image-squid.yml @@ -0,0 +1,30 @@ +# Copyright 2022 Google LLC +# +# Licensed 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 and push the Squid container image" + +on: + workflow_dispatch: + push: + branches: + - master + paths: + - 'modules/cloud-config-container/squid/docker/**' + +jobs: + build-push-squid-container-image: + uses: ./.github/workflows/container-image.yml + with: + image_name: fabric-squid + docker_context: modules/cloud-config-container/squid/docker diff --git a/.github/workflows/container-image-strongswan.yml b/.github/workflows/container-image-strongswan.yml new file mode 100644 index 0000000000..1dc5d0eaaa --- /dev/null +++ b/.github/workflows/container-image-strongswan.yml @@ -0,0 +1,30 @@ +# Copyright 2022 Google LLC +# +# Licensed 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 and push the strongSwan container image" + +on: + workflow_dispatch: + push: + branches: + - master + paths: + - 'modules/cloud-config-container/onprem/docker-images/strongswan/**' + +jobs: + build-push-strongswan-container-image: + uses: ./.github/workflows/container-image.yml + with: + image_name: fabric-strongswan + docker_context: modules/cloud-config-container/onprem/docker-images/strongswan diff --git a/.github/workflows/container-image-toolbox.yml b/.github/workflows/container-image-toolbox.yml new file mode 100644 index 0000000000..37870fce36 --- /dev/null +++ b/.github/workflows/container-image-toolbox.yml @@ -0,0 +1,30 @@ +# Copyright 2022 Google LLC +# +# Licensed 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 and push the Toolbox container image" + +on: + workflow_dispatch: + push: + branches: + - master + paths: + - 'modules/cloud-config-container/onprem/docker-images/toolbox/**' + +jobs: + build-push-toolbox-container-image: + uses: ./.github/workflows/container-image.yml + with: + image_name: fabric-toolbox + docker_context: modules/cloud-config-container/onprem/docker-images/toolbox diff --git a/.github/workflows/container-image.yml b/.github/workflows/container-image.yml new file mode 100644 index 0000000000..5ddfb7d0c9 --- /dev/null +++ b/.github/workflows/container-image.yml @@ -0,0 +1,51 @@ +# Copyright 2022 Google LLC +# +# Licensed 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 and push a generic container image" + +on: + workflow_call: + inputs: + image_name: + required: true + type: string + docker_context: + required: true + type: string + +jobs: + build-push-generic-container-image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d')" + + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: ${{ inputs.docker_context }} + push: true + tags: | + ghcr.io/${{ github.repository_owner }}/${{ inputs.image_name }}:latest + ghcr.io/${{ github.repository_owner }}/${{ inputs.image_name }}:${{ steps.date.outputs.date }}