From 96118891810e4b46c1a43ced5cec4c56b5495a5e Mon Sep 17 00:00:00 2001 From: Anton Tetov Date: Thu, 23 May 2024 19:00:24 +0200 Subject: [PATCH] gh action build container --- .github/workflows/publish-container.yaml | 47 ++++++++++++++++++++++++ README.md | 2 +- bashrc_fragment.sh | 2 +- dependencies.repos | 2 +- 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/publish-container.yaml diff --git a/.github/workflows/publish-container.yaml b/.github/workflows/publish-container.yaml new file mode 100644 index 0000000..54de70a --- /dev/null +++ b/.github/workflows/publish-container.yaml @@ -0,0 +1,47 @@ +name: Create and publish a Docker image + +on: [push] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + attestations: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + id: push + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-digest: ${{ steps.push.outputs.digest }} + push-to-registry: true diff --git a/README.md b/README.md index 0b0b959..e93f766 100644 --- a/README.md +++ b/README.md @@ -18,4 +18,4 @@ rosdep install --from-paths src --ignore-src -y catkin build ``` -Create an .env file based on .env.example adding the passwords needed. \ No newline at end of file +Create an .env file based on .env.example adding the passwords needed. diff --git a/bashrc_fragment.sh b/bashrc_fragment.sh index d423cab..956ca53 100644 --- a/bashrc_fragment.sh +++ b/bashrc_fragment.sh @@ -12,4 +12,4 @@ if [ -f $CATKIN_WS/src/biodigitalmatter_ros/.env ] ; then set +a fi -mkdir -p ~/rosbags \ No newline at end of file +mkdir -p ~/rosbags diff --git a/dependencies.repos b/dependencies.repos index f20985d..ec66972 100644 --- a/dependencies.repos +++ b/dependencies.repos @@ -32,4 +32,4 @@ repositories: abb_robot_driver: type: git url: https://github.com/ros-industrial/abb_robot_driver.git - version: master \ No newline at end of file + version: master