name: build on: schedule: - cron: "0 12 * * *" push: paths-ignore: - "*.md" - "*.txt" - "*.png" pull_request: paths-ignore: - "*.md" - "*.txt" - "*.png" env: IMAGE_NAME: atmoz/sftp jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # for proper signature verification submodules: true # for shunit2 - name: Run ShellCheck uses: ludeeus/action-shellcheck@master with: ignore: tests/shunit2 - name: Build debian image run: | docker build . \ --pull=true \ --file=Dockerfile \ --tag="$IMAGE_NAME:latest" \ --tag="$IMAGE_NAME:debian" \ --tag="$IMAGE_NAME:debian-$GITHUB_SHA" \ --label="org.opencontainers.image.source=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \ --label="org.opencontainers.image.revision=$GITHUB_SHA" \ --label="org.opencontainers.image.created=$(date --rfc-3339=seconds)" - name: Test debian image run: tests/run $IMAGE_NAME:debian - name: Build alpine image run: | docker build . \ --pull=true \ --file=Dockerfile-alpine \ --tag="$IMAGE_NAME:alpine" \ --tag="$IMAGE_NAME:alpine-$GITHUB_SHA" \ --label="org.opencontainers.image.source=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \ --label="org.opencontainers.image.revision=$GITHUB_SHA" \ --label="org.opencontainers.image.created=$(date --rfc-3339=seconds)" - name: Test alpine image run: tests/run $IMAGE_NAME:alpine - name: Verify signature if: github.ref == 'refs/heads/master' uses: atmoz/git-verify-ref@master with: import-github-users: atmoz - name: Push images to Docker Hub registry if: github.ref == 'refs/heads/master' run: | echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login \ -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin docker push $IMAGE_NAME # no tags specified to include all tags - name: Push images to GitHub registry if: github.ref == 'refs/heads/master' run: | echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com \ -u ${{ github.actor }} --password-stdin TAG_DEBIAN=docker.pkg.github.com/$GITHUB_REPOSITORY/debian TAG_ALPINE=docker.pkg.github.com/$GITHUB_REPOSITORY/alpine docker tag $IMAGE_NAME:debian $TAG_DEBIAN docker tag $IMAGE_NAME:alpine $TAG_ALPINE docker push $TAG_DEBIAN docker push $TAG_ALPINE