mirror of
https://github.com/a2geek/cc65-pipeline.git
synced 2024-11-16 13:08:32 +00:00
Compare commits
No commits in common. "master" and "2018-03-17" have entirely different histories.
master
...
2018-03-17
@ -1,73 +0,0 @@
|
|||||||
# Working notes for pushing images to Docker Hub
|
|
||||||
|
|
||||||
> Note: It appears that the personal accounts on Docker Hub no longer automatically build based on a Github repository being tagged. (Maybe they never did as it's been 4 years!)
|
|
||||||
|
|
||||||
## Login
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker login
|
|
||||||
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
|
|
||||||
Username: a2geek
|
|
||||||
Password:
|
|
||||||
WARNING! Your password will be stored unencrypted in /home/rob/.docker/config.json.
|
|
||||||
Configure a credential helper to remove this warning. See
|
|
||||||
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
|
|
||||||
|
|
||||||
Login Succeeded
|
|
||||||
```
|
|
||||||
|
|
||||||
## Built and Tag
|
|
||||||
|
|
||||||
This created the `latest` tag:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker build -t a2geek/cc65-pipeline .
|
|
||||||
Sending build context to Docker daemon 135.2kB
|
|
||||||
Step 1/5 : FROM alpine:latest
|
|
||||||
---> e7d92cdc71fe
|
|
||||||
Step 2/5 : LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
|
||||||
<snip>
|
|
||||||
---> 207cf150f1f0
|
|
||||||
Step 3/5 : ENV BUILD_DIR="/tmp" CC65_VERSION="V2.19" NULIB2_VERSION="v3.1.0" AC_VERSION="1.7.0" BASTOOLS_VERSION="0.3.1" ASU_VERSION="1.2.1"
|
|
||||||
<snip>
|
|
||||||
---> 06228100af88
|
|
||||||
Step 4/5 : COPY bin /usr/local/bin
|
|
||||||
<snip>
|
|
||||||
---> 0e009844ebc9
|
|
||||||
Step 5/5 : RUN a bunch of stuff
|
|
||||||
<snip>
|
|
||||||
---> 78d59c93b46b
|
|
||||||
Successfully built 78d59c93b46b
|
|
||||||
Successfully tagged a2geek/cc65-pipeline:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
... and this tagged it with the date:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker tag 78d59c93b46b a2geek/cc65-pipeline:2022-03-06
|
|
||||||
```
|
|
||||||
|
|
||||||
Check:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker images
|
|
||||||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
|
||||||
a2geek/cc65-pipeline 2022-03-06 78d59c93b46b 31 minutes ago 238MB
|
|
||||||
a2geek/cc65-pipeline latest 78d59c93b46b 31 minutes ago 238MB
|
|
||||||
<none> <none> 8c7e891250c4 38 minutes ago 238MB
|
|
||||||
```
|
|
||||||
|
|
||||||
## Push to Docker Hub:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker push a2geek/cc65-pipeline
|
|
||||||
The push refers to repository [docker.io/a2geek/cc65-pipeline]
|
|
||||||
d2d7d7253122: Pushed
|
|
||||||
e3169423110d: Pushed
|
|
||||||
5216338b40a7: Mounted from a2geek/concourse-image
|
|
||||||
2022-03-06: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
|
|
||||||
d2d7d7253122: Layer already exists
|
|
||||||
e3169423110d: Layer already exists
|
|
||||||
5216338b40a7: Layer already exists
|
|
||||||
latest: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
|
|
||||||
```
|
|
27
Dockerfile
27
Dockerfile
@ -3,15 +3,14 @@ FROM alpine:latest
|
|||||||
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
||||||
|
|
||||||
ENV BUILD_DIR="/tmp" \
|
ENV BUILD_DIR="/tmp" \
|
||||||
CC65_VERSION="V2.19" \
|
CC65_VERSION="V2.17" \
|
||||||
NULIB2_VERSION="v3.1.0" \
|
NULIB2_VERSION="v3.1.0" \
|
||||||
AC_VERSION="1.9.0" \
|
AC_RELEASE="v1-4-0" \
|
||||||
BASTOOLS_VERSION="0.4.0" \
|
AC_VERSION="1.4.0"
|
||||||
ASU_VERSION="1.2.2"
|
|
||||||
|
|
||||||
COPY bin /usr/local/bin
|
COPY bin /usr/local/bin
|
||||||
|
|
||||||
RUN apk add --no-cache build-base binutils && \
|
RUN apk add --no-cache build-base && \
|
||||||
echo "Building CC65 ${CC65_VERSION}" && \
|
echo "Building CC65 ${CC65_VERSION}" && \
|
||||||
cd ${BUILD_DIR} && \
|
cd ${BUILD_DIR} && \
|
||||||
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
|
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
|
||||||
@ -32,26 +31,14 @@ RUN apk add --no-cache build-base binutils && \
|
|||||||
./configure && \
|
./configure && \
|
||||||
make && \
|
make && \
|
||||||
make install && \
|
make install && \
|
||||||
|
echo "Adding AppleCommander" && \
|
||||||
|
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_RELEASE}/AppleCommander-ac-${AC_VERSION}.jar && \
|
||||||
mkdir -p /usr/local/share/java && \
|
mkdir -p /usr/local/share/java && \
|
||||||
echo "Adding AppleCommander 'ac'" && \
|
|
||||||
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-ac-${AC_VERSION}.jar && \
|
|
||||||
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
|
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
|
||||||
echo "Adding AppleCommander 'acx'" && \
|
|
||||||
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-acx-${AC_VERSION}.jar && \
|
|
||||||
mv AppleCommander-acx-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-acx.jar && \
|
|
||||||
echo "Adding bastools 'bt'" && \
|
|
||||||
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-bt-${BASTOOLS_VERSION}.jar && \
|
|
||||||
mv bastools-tools-bt-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-bt.jar && \
|
|
||||||
echo "Adding bastools 'st'" && \
|
|
||||||
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-st-${BASTOOLS_VERSION}.jar && \
|
|
||||||
mv bastools-tools-st-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-st.jar && \
|
|
||||||
echo "Adding applesingle 'asu'" && \
|
|
||||||
wget https://github.com/AppleCommander/applesingle/releases/download/v${ASU_VERSION}/applesingle-tools-asu-${ASU_VERSION}.jar && \
|
|
||||||
mv applesingle-tools-asu-${ASU_VERSION}.jar /usr/local/share/java/applesingle-asu.jar && \
|
|
||||||
echo "Cleaning up" && \
|
echo "Cleaning up" && \
|
||||||
cd ${BUILD_DIR} && \
|
cd ${BUILD_DIR} && \
|
||||||
rm -rf * && \
|
rm -rf * && \
|
||||||
apk del --no-cache build-base && \
|
apk del --no-cache build-base && \
|
||||||
echo "Adding other required build-tools exclusive of other C compilers!" && \
|
echo "Adding other required build-tools exclusive of other C compilers!" && \
|
||||||
apk add --no-cache make openjdk11-jre && \
|
apk add --no-cache make openjdk8-jre && \
|
||||||
chmod +x /usr/local/bin/*
|
chmod +x /usr/local/bin/*
|
||||||
|
20
README.md
20
README.md
@ -1,10 +1,12 @@
|
|||||||
# cc65 build agent
|
# cc65 build agent
|
||||||
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/a2geek/cc65-pipeline)](https://github.com/a2geek/cc65-pipeline/releases)
|
|
||||||
[![Docker Image Version (latest by date)](https://img.shields.io/docker/v/a2geek/cc65-pipeline?label=docker)](https://hub.docker.com/r/a2geek/cc65-pipeline/)
|
|
||||||
|
|
||||||
This Docker image is intended to be used in a build pipeline to build
|
This Docker image is intended to be used in a build pipeline to build
|
||||||
6502/65c02/65816 projects. It is based on
|
6502/65c02/65816 projects. It is simply a blend of
|
||||||
[Alpine Linux](https://alpinelinux.org/).
|
[Alpine Linux](https://alpinelinux.org/) and
|
||||||
|
[cc65](http://cc65.github.io/cc65/).
|
||||||
|
|
||||||
|
In an effort to keep the image small, it currently only contains (beyond the base
|
||||||
|
Alpine Linux Docker image) `make` and `cc65`.
|
||||||
|
|
||||||
Note that most tools are installed into `/usr/local` in some capacity and
|
Note that most tools are installed into `/usr/local` in some capacity and
|
||||||
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
|
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
|
||||||
@ -20,16 +22,8 @@ to submit a pull request!
|
|||||||
## Apple II
|
## Apple II
|
||||||
|
|
||||||
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
|
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
|
||||||
* [cc65](http://cc65.github.io/cc65/) for C and assembly projects.
|
|
||||||
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
|
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
|
||||||
images. The following utilities are included:
|
images.
|
||||||
* [ac](https://applecommander.github.io/ac/) to manipulate disk images.
|
|
||||||
* [acx](https://applecommander.github.io/acx/) to manipulate disk images (alternate to 'ac').
|
|
||||||
* [bt](https://github.com/AppleCommander/bastools/blob/master/tools/bt/README.md) to transform an AppleSoft program from text back to its tokenized state.
|
|
||||||
* [st](https://github.com/AppleCommander/bastools/blob/master/tools/st/README.md) is a utility to manage AppleSoft shape tables.
|
|
||||||
* [asu](https://github.com/AppleCommander/applesingle/blob/master/tools/asu/README.md) to support manipulation of AppleSingle files.
|
|
||||||
* From the Alpine packages:
|
|
||||||
* [binutils](https://www.gnu.org/software/binutils/)
|
|
||||||
|
|
||||||
# Samples
|
# Samples
|
||||||
|
|
||||||
|
2
bin/acx
2
bin/acx
@ -1,2 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
java -jar /usr/local/share/java/AppleCommander-acx.jar "${@}"
|
|
2
bin/asu
2
bin/asu
@ -1,2 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
java -jar /usr/local/share/java/applesingle-asu.jar "${@}"
|
|
Loading…
Reference in New Issue
Block a user