diff --git a/.github/workflows/rust-on-nails-devcontainer.yml b/.github/workflows/rust-on-nails-devcontainer.yml index ede1f305..7f686f04 100644 --- a/.github/workflows/rust-on-nails-devcontainer.yml +++ b/.github/workflows/rust-on-nails-devcontainer.yml @@ -3,13 +3,14 @@ name: Build Rust on Nails DevContainer on: push: branches: - - main + - main paths: - - 'dev-env-as-code/**' - - 'nails-devcontainer/**' - # Exclude this as it is set by semantic release - - '!dev-env-as-code/Dockerfile.devcontainer' - - '!nails-devcontainer/Dockerfile' + - 'dev-env-as-code/**' + - 'nails-devcontainer/**' + - '.github/workflows/**' + # Exclude this as it is set by semantic release + - '!dev-env-as-code/Dockerfile.devcontainer' + - '!nails-devcontainer/Dockerfile' jobs: build: @@ -19,56 +20,57 @@ jobs: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CONTAINER_NAME: purtontech/rust-on-nails-devcontainer steps: - - name: Checkout - uses: actions/checkout@v2 + - name: Checkout + uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - with: - platforms: all + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + with: + platforms: all - - name: Log in to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build Docker file (AMD64) - run: | - docker build --platform amd64 -t purtontech/rust-on-nails-devcontainer dev-env-as-code - docker push purtontech/rust-on-nails-devcontainer - - - name: Build Docker file (ARM64) - run: | - docker build --platform arm64 -t purtontech/rust-on-nails-devcontainer dev-env-as-code - docker push purtontech/rust-on-nails-devcontainer + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build Docker file (AMD64) + run: | + docker build --platform amd64 -t $CONTAINER_NAME dev-env-as-code + docker push $CONTAINER_NAME + + - name: Build Docker file (ARM64) + run: | + docker build --platform arm64 -t $CONTAINER_NAME dev-env-as-code + docker push $CONTAINER_NAME - # If this is a release - # create release notes - # set the docker version - # - - name: Semantic Release - run: | - npm i -D @semantic-release/exec - npm i -D @semantic-release-plus/docker - npm i -D @semantic-release/git - npx semantic-release + # If this is a release + # create release notes + # set the docker version + # + - name: Semantic Release + run: | + npm i -D @semantic-release/exec + npm i -D @semantic-release-plus/docker + npm i -D @semantic-release/git + npx semantic-release - - name: Tag and Push Docker Image - if: steps.semantic-release.outputs.new-release-published == 'true' - run: | - docker pull ghcr.io/purtontech/rust-on-nails-devcontainer:latest - docker tag ghcr.io/purtontech/rust-on-nails-devcontainer:latest ghcr.io/purtontech/rust-on-nails-devcontainer:${{ steps.semantic-release.outputs.version }} - docker push ghcr.io/purtontech/rust-on-nails-devcontainer:${{ steps.semantic-release.outputs.version }} + - name: Tag and Push Docker Image + if: steps.semantic-release.outputs.new-release-published == 'true' + run: | + docker pull $CONTAINER_NAME:latest + docker tag $CONTAINER_NAME:latest $CONTAINER_NAME:${{ steps.semantic-release.outputs.version }} + docker push $CONTAINER_NAME:${{ steps.semantic-release.outputs.version }} - - name: "Publish Templates" - uses: devcontainers/action@v1 - with: - publish-templates: "true" - base-path-to-templates: "./nails-devcontainer" - generate-docs: "true" + - name: "Publish Templates" + uses: devcontainers/action@v1 + with: + publish-templates: "true" + base-path-to-templates: "./nails-devcontainer" + generate-docs: "true" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}