Skip to content

updates

updates #666

Workflow file for this run

name: build_one
on: push
jobs:
build_one:
if: "!contains(github.event.head_commit.message, 'skip ci')"
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
- 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 and push to docker
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
LP_T_CONSUMER_KEY: ${{ secrets.LP_T_CONSUMER_KEY }}
LP_T_CONSUMER_SECRET: ${{ secrets.LP_T_CONSUMER_SECRET }}
LP_T_OAUTH_SECRET: ${{ secrets.LP_T_OAUTH_SECRET }}
LP_T_OAUTH_TOKEN: ${{ secrets.LP_T_OAUTH_TOKEN }}
run: |
set -x
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/America/Toronto /etc/localtime
docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
curl --silent --location --output ~/am-dapp --url https://github.com/forwardcomputers/bin/raw/main/am-dapp
chmod +x ~/am-dapp
GH_SHA=$( \
curl --silent --location --url https://api.github.com/repos/forwardcomputers/dockerfiles/commits | \
jq -r '.[0].sha' \
)
GH_APP=( $( \
curl --silent --location --url https://api.github.com/repos/forwardcomputers/dockerfiles/commits/"${GH_SHA}" | \
jq --raw-output '[.files | .[] | select( .status == "added" or .status == "modified" and ( ( .filename | contains(".github") | not ) or ( .filename | contains(".github") | not ) ) and ( .filename | contains("/") ) ) | .filename | split("/")[0]] | unique[]') \
)
for APP in "${GH_APP[@]}"; do
~/am-dapp build ${APP}
~/am-dapp push ${APP}
~/am-dapp readme
done
- name: Tweet on Failure
if: failure()
env:
LP_T_CONSUMER_KEY: ${{ secrets.LP_T_CONSUMER_KEY }}
LP_T_CONSUMER_SECRET: ${{ secrets.LP_T_CONSUMER_SECRET }}
LP_T_OAUTH_SECRET: ${{ secrets.LP_T_OAUTH_SECRET }}
LP_T_OAUTH_TOKEN: ${{ secrets.LP_T_OAUTH_TOKEN }}
run: |
# Code bits from - https://github.com/moebiuscurve/tweetExperiments/tree/master/curlTweets
repo_name=$( echo "$GITHUB_REPOSITORY" | awk -F / '{ print $2 }' )
message="${repo_name} failed"
message_string=$( echo -n "${message}" | sed -e s'/ /%2520/g' )
message_curl=$( echo -n "${message}" | sed -e s'/ /+/g' )
timestamp=$( date +%s )
nonce=$( date +%s%T | openssl base64 | sed -e s'/[+=/]//g' )
api_version="1.1"
signature_base_string="POST&https%3A%2F%2Fapi.twitter.com%2F${api_version}%2Fstatuses%2Fupdate.json&oauth_consumer_key%3D${LP_T_CONSUMER_KEY}%26oauth_nonce%3D${nonce}%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D${timestamp}%26oauth_token%3D${LP_T_OAUTH_TOKEN}%26oauth_version%3D1.0%26status%3D${message_string}"
signature_key="${LP_T_CONSUMER_SECRET}&${LP_T_OAUTH_SECRET}"
oauth_signature=$( echo -n "${signature_base_string}" | openssl dgst -sha1 -hmac "${signature_key}" -binary | openssl base64 | sed -e s'/+/%2B/g' -e s'/\//%2F/g' -e s'/=/%3D/g' )
header="Authorization: OAuth oauth_consumer_key=\"${LP_T_CONSUMER_KEY}\", oauth_nonce=\"${nonce}\", oauth_signature=\"${oauth_signature}\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"${timestamp}\", oauth_token=\"${LP_T_OAUTH_TOKEN}\", oauth_version=\"1.0\""
result=$( curl -s -X POST "https://api.twitter.com/${api_version}/statuses/update.json" --data "status=${message_curl}" --header "Content-Type: application/x-www-form-urlencoded" --header "${header}" )